我用 Django 创建了一个网站,现在我需要部署它,现在我必须将它上传到 1and1。我是否需要为此使用特定工具,或者我是否可以像仅包含 .html 和 .css 文件的网站一样毫不犹豫地上传它?
最佳答案
安装
- ssh 进入 Ionos
- 更新 pip:
python3 -m pip install --upgrade pip
- 安装 django:
python3 -m pip install django
- 确保 .bash_profile 包含
source ~/.bashrc
- 将 Django 位置添加到 .bashrc:
/full_path_to_homefolder/.local/bin
和/full_path_to_homefolder/.local/lib
,以及source ~/.bashrc
。
设置
- 创建一个子文件夹来工作,例如工作[可选]
- 在该文件夹中创建一个项目(例如 mysite):
django-admin startproject mysite
- 在您的工作文件夹中创建文件夹 cgi-bin。
- 在 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)
- 在您的工作文件夹中,
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]
- 将您的网站域添加到 ~/work/mysite/mysite/settings.py 中的 ALLOW_HOSTS
- 在 ~/work/mysite 文件夹中创建一个应用程序:
python manage.py startapp appname
- 浏览到
your_website/work/
看看它是否有效 - 复制您已有的所有文件。如果没有,请继续使用官方教程,忽略开发服务器的所有说明:https://docs.djangoproject.com/en/3.2/intro/tutorial01/#write-your-first-view
- 不要忘记运行
python manage.py check --deploy
来保护您的网站以进行部署。
关于python - 如何将 Django App 部署到 1and1 (ionos),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846504/