5.部署 Web App

将本地的代码同步Github 然后再把代码从Github同步到 pythonanywhere

Git

Git是一个被大量程序员使用的"版本控制系统"。 此软件可以跟踪任何时间文件的改变,这样你以后可以随时召回某个特定版本。

创建Git 版本库

Git跟踪一组特定的在代码仓库(或简称“仓库”)中文件的更改。 我们开始用git管理自己的项目吧。 打开你的终端,进入MAC 用户的根目录 文件夹运行以下的命令:

$ git init
Initialized empty Git repository in /Users/mofu/.git/
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

让Git 忽略特定文件

输入命令 git status 查看一下当前会被追踪的文件。这里我们只需要以下目录和文件被追踪。

    blog/
    db.sqlite3
    manage.py
    mysite/

在用户目录(mofu)创建一个名称为.gitignore的文件。 打开编辑器,创建新文件并写入以下内容(git status 出现到的 排除上面的,得出下面的列表)

*.pyc
__pycache__
myvenv
.DS_Store
.CFUserTextEncoding
.atom/
.bash_history
.bash_sessions/
.config/
.gitconfig
.gitignore
.gitignore_global
.hgignore_global
.oracle_jre_usage/
.python_history
.ssh/
.stCommitMsg
.vscode/
Applications/
Desktop/
Documents/
Downloads/
GitBook/
Library/
Movies/
Music/
Pictures/
Public/

文件被创建成功,但是看不到,应为它是.开头的。

保存我们的更改

输入 git add --all 保存 上面的 4个文件和文件夹。
20170826150372683924016.png

推送我们的代码到 Github

访问 https://github.com/new 创建一个仓库,.gitignore 选项为无 (我们已经手动创建了) ,让License设置为无。
20170825150364681745839.png

在下一屏中,你将看到你的仓库克隆 URL。选择“HTTPS”版本,拷贝地址,我们马上要把它粘贴到终端:
2017082515036468326786.png
第一次执行需要做以下操作

git add . 添加所有的改动

git commit -m "init" 发送刚刚添加的所有的改动,并命名 init

git remote add origin https://github.com/zfl420/my-first-blog.git

选择上传到的仓库

git push -u origin master 上传,并按照提示输入账号密码,就成功了。

git log 可以查看git的日志。

history|tail 可以查看终端的命令历史。

这个时候,在github上就可以看到这个仓库已经被更新了。
20170825150364686270466.png

在 PythonAnywhere 设置我们的博客

在pythonAnywhere 创建一个 begingner账户,账号名称会是你的用户名 https://www.pythonanywhere.com

这是我的首页 http://zfl420.pythonanywhere.com/

在 PythonAnywhere 上拉取我们的代码

点击 Bash 启动 PythonAnywhere 给我们提供的命令行工具
20170825150364688492306.png
打开 Bash后,在PythonAnywhere里面输入西面的命令,后面的链接是仓库地址。

git clone https://github.com/zfl420/my-first-blog.git

把代码下载到了 PythonAnywhere后,通过命令

tree my-first-blog

查看本地的项目 my-first-blog 的树形结构。
20170825150364690537563.png

在PythonAnywhere上创建Virtulalenv

进入 my-first-blog

cd my-first-blog

命令 virtualenv --python=python3.6 myvenv 创建虚拟环境
20170825150364692159909.png

命令source myvenv/bin/activate进入虚拟环境

命令 pip install django whitenoise 安装 whitenoise
20170825150364692159909.png

whitenoise

什么是"whitenoise"白噪音? 它是用来服务所谓的“static files”静态文件的工具。 静态文件是很少改动或者并非可运行的程序代码的那些文件,比如 HTML 或 CSS 文件。 在我们的计算机上,它们以不同的方式工作,我们需要比如“whitenoise”这样的工具来为其服务。在教程后续编辑网站 CSS 章节会介绍更多有关静态文件的内容。

收集静态文件

命令 python manage.py collectstatic 告诉 Django 去收集服务器上所有需要的静态文件。

执行完毕 会提示 61 static files copied to '/home/zfl420/my-first-blog/static'.

在 PythonAnywhere 上创建数据库

命令 python manage.py migrate 初始化数据库

创建超级用户
python manage.py createsuperuser
按照要求输入用户名、邮箱和密码

新建一个 new web app
20170825150364838334236.png
选择Manual configuration 再选 python 3.6.

注意 不要选择 Django

设置 virtualenv
在选项卡 Virtualenv: 里面输入
/home/zfl420/my-first-blog/myvenv
保存后如图
20170825150365102932286.png

配置WSGI文件

Django 使用 “WSGI 协议”,它是用来服务 Python 网站的一个标准。PythonAnywhere 支持这个标准。 PythonAnywhere 识别我们 Django 博客的方式是通过配置 WSGI 配置文件。

点击这个wsgi.py文件。

20170826150372515758865.png

他会出现一个编辑器,然后删除里面的内容,并且替换成以下内容。

import os
import sys

path = '/home/zfl420/my-first-blog'  # use your own username here
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(get_wsgi_application())

注意: 第三行那个路径(path)换成自己的博客路径。

这个文件的作用是告诉 PythonAnywhere 我们的Web应用程序在什么位置,Django 设置文件的名字是什么。它也设置 "whitenoise" 静态文件工具。

Reload

20170826150372567915242.png

出现一个错误

20170826150372642248914.png

这个时候需要把,zfl420.pythonanywhere.com 放到ALLOWED_HOSTS里面。

20170826150372653354861.png

完美解决。

第二个问题

我在本地设置的 superuser 用户名是 mofu , 但是我在pythonanywhere 上设置为mofu的时候是失败的,于是我就把 zfl420 设置为了 superuser。

所以,在登陆 zfl420.pythonanywhere.com/admin/ 的时候,用的用户名是 zfl420。

上线了!

好啦,可以访问啦

20170826150372696382488.png

Comments
Write a Comment