python - 如何将 Django App 部署到 1and1 (ionos)

标签 python django deployment ionos

我用 Django 创建了一个网站,现在我需要部署它,现在我必须将它上传到 1and1。我是否需要为此使用特定工具,或者我是否可以像仅包含 .html 和 .css 文件的网站一样毫不犹豫地上传它?

最佳答案

安装

  1. ssh 进入 Ionos
  2. 更新 pip:python3 -m pip install --upgrade pip
  3. 安装 django:python3 -m pip install django
  4. 确保 .bash_profile 包含 source ~/.bashrc
  5. 将 Django 位置添加到 .bashrc: /full_path_to_homefolder/.local/bin/full_path_to_homefolder/.local/lib,以及 source ~/.bashrc

设置

  1. 创建一个子文件夹来工作,例如工作[可选]
  2. 在该文件夹中创建一个项目(例如 mysite):django-admin startproject mysite
  3. 在您的工作文件夹中创建文件夹 cgi-bin。
  4. 在 cgi-bin 中创建文件 application.fcgi,内容如下:
        # -*- coding: UTF-8 -*-
        
        import os
        import sys
        import traceback
        
        home = '/COMPLETE_PATH_TO_YOUR_FOLDER/work'
        try:        
            project = os.path.join(home, 'mysite')
            # Add a custom Python path.
            sys.path.insert(0, project)
        
            # Switch to the directory of your project.
            os.chdir(project)
        
            # Set the DJANGO_SETTINGS_MODULE environment variable.
            os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings"
        
            from django_fastcgi.servers.fastcgi import runfastcgi
            from django.core.servers.basehttp import get_internal_wsgi_application
        
            wsgi_application = get_internal_wsgi_application()
            runfastcgi(wsgi_application, method="prefork", daemonize="false", minspare=1, maxspare=1, maxchildren=1)
        except:
            traceback.print_exc(stdout)
            with open(os.path.join(home, 'tmp/error.log'), 'w') as fp:
        traceback.print_exc(file = fp)
  1. 在您的工作文件夹中,vim .htaccess 并添加以下内容:
        RewriteEngine on
        RewriteBase /
        # The following two lines are for FastCGI:
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /apps/cgi-bin/application.fcgi/$1 [QSA,L]
  1. 将您的网站域添加到 ~/work/mysite/mysite/settings.py 中的 ALLOW_HOSTS
  2. 在 ~/work/mysite 文件夹中创建一个应用程序:python manage.py startapp appname
  3. 浏览到 your_website/work/ 看看它是否有效
  4. 复制您已有的所有文件。如果没有,请继续使用官方教程,忽略开发服务器的所有说明:https://docs.djangoproject.com/en/3.2/intro/tutorial01/#write-your-first-view
  5. 不要忘记运行 python manage.py check --deploy 来保护您的网站以进行部署。

关于python - 如何将 Django App 部署到 1and1 (ionos),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846504/

相关文章:

php - 如何为 PHP/MySQL 应用程序自动迁移(架构和数据)

python - 高效的嵌套正则表达式

Python 多处理 : Errors from different codes

Python Kivy 语言颜色属性

django - 从超过 max_retries 失败的任务中恢复

javascript - DRF 在嵌套序列化器中创建用户

python - 我如何从中间件中的 url 访问字符串

apache - FAIL - 上下文路径/dms 中的应用程序无法启动

python - Eclipse:打开文件夹上的资源

ruby-on-rails - Heroku 返回 404 但日志上没有错误