在执行部署Django网站以前,应该先处理好前期工做,好比对settings.py文件进行设置以防止私密信息泄露等。本文只是简单的笔记,原文地址为:https://tutorial.djangogirls....python
1, 将Django项目发布到GitHubgit
2, 申请免费的PythonAnyWhere帐号
网址:https://www.pythonanywhere.com/
免费的帐号只能建一个站。站名只能为XXX.pythonanywhere.com。其中XXX表明注册帐户时所用的用户名。站点只能维持2个月,2个月后就会被删除。github
3, 将GitHub上的项目发送至PythonAnyWhere
3.1 在PythonAnyWhere中,点击 “Consoles” –> start a “Bash” console
这个Bash是相似于Linux系统里的“终端”。
3.2 在这个新建的Bash里面输入:
注意:以下代码表示须要在PythonAnyWhere的Bash中执行!!web
$ git clone https://github.com/<your-github-username>/my-first-blog.git
这个步骤将GitHub的项目发送到PythonAnyWhere。注意上面的这个连接就是GitHub里项目的仓库地址:数据库
Bash的响应很是慢,须要耐心等候。
发送完成后可使用下面的代码来看被复制到PythonAnyWhere的文件目录结构,须要强调的是,这个my-first-blog即为GitHub里的仓库的项目名字。
注意:以下代码表示须要在PythonAnyWhere的Bash中执行!!django
tree my-first-blog
4, 为PythonAnyWhere里的项目建立virtual environment
继续在PythonAnyWhere的Bash里执行下面的命令,以建立一个名为myvenv的虚拟环境。
注意:以下代码表示须要在PythonAnyWhere的Bash中执行!!app
$ cd my-first-blog $ virtualenv --python=python3.5 myvenv $ source myvenv/bin/activate (myvenv) $ pip install django==1.10.0
上面的python和django版本号仅供参考!编辑器
5, 为PythonAnyWhere里的项目建立数据库并建立超级帐户
注意:以下代码表示须要在PythonAnyWhere的Bash中执行!!字体
(myvenv) $ python manage.py migrate (myvenv) $ python manage.py createsuperuser
6, 将Django项目做为Web App发布
到这里,咱们的Django项目已经在PythonAnyWhere上了,虚拟环境也准备好了,数据库也建立好了,此时就能够将它做为Web App发布了!在PythonAnyWhere里,点击 “Web”选项卡 -> 点击 “Add a new web app”
-> 确认域名 -> 选择manual configuration(注意不是选择“Django”哦) -> 选择Python3.5 -> 点击Next以最终完成向导。网站
7, 配置Web App的虚拟环境
建立好了Web App以后,PythonAnyWhere就会将你带到该Web App的配置界面,点击Virtualenv下面红色的字体来编辑虚拟环境的位置,以下图所示:
将地址修改成:
/home/<你的PythonAnyWhere的帐户名>/my-first-blog/myvenv
注意:上面的my-first-blog为GitHub里的项目的仓库地址。
注意:上面的myvenv是该建立的虚拟环境的名字
8, 配置PythonAnyWhere里的WSGI文件
仍然是在Web选项卡,点击WSGI configuration file后面的蓝色字体链接(以下图所示)。
PythonAnyWhere将带咱们到一个新的页面(一个代码编辑器),将编辑器的代码所有用下面的代码替换。
import os import sys path = '/home/<你的PythonAnyWhere用户名>/my-first-blog' # 在这里使用你本身的用户名和GitHub项目的名字。 if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' # 在这里mysite请用settings所在文件夹名,我用的是和GitHub仓库名同样的名字 from django.core.wsgi import get_wsgi_application from django.contrib.staticfiles.handlers import StaticFilesHandler application = StaticFilesHandler(get_wsgi_application())
点击 “Save” -> 返回Web选项卡 -> 点击大大的绿色按钮“Reload”。此时咱们就能够经过Web选项卡上提供的地址(也就是XXX.pythonanywhere.com)访问了!这样咱们的网站就真正在互联网上存在了,虽然只有两个月的有效期:-(
9, Debug
在配置过程当中,不免会出错致使站点没法成功发布。首先应该:
查看出错页面显示的error log
查看Web选项卡页面有无任何错误提示
常见的错误包括:
在PythonAnyWhere的Bash漏了建立virtualenv,激活它,给它安装Django,给它初始化数据库
第7步设置虚拟环境的路径是时有错误
第8步配置WSGI时有错误,是否填入正确的path了呢?
安装虚拟环境时选择的Python版本和建立Web App时选择的Python是否都是同一版本?
10, 如何将GitHub里项目的修改反馈到PythonAnyWhere?
项目又要修改的时候,一般是在本地计算机修改,修改好以后发布到GitHub,以后发布到PythonAnyWhere。当GitHub里项目修改好以后,在PythonAnyWhere的Bash里面输入下面两行代码就能够同步了:
注意:以下代码表示须要在PythonAnyWhere的Bash中执行!!
cd my-first-blog git pull