部署
在 PythonAnyWhere 上部署博客项目
假如自己有服务器,可以看另外一篇使用 Ubuntu+Apache 部署的记录文章
PythonAnyWhere
PythonAnywhere是一个基于Python语言的在线集成开发环境(IDE)和Web托管服务。它提供内嵌在浏览器中的相关接口(就是图形化界面),来访问服务中的基于服务的Python和Bash命令,以及带有高亮的代码编辑器。程序文件可以通过浏览器可以进行上传到服务和下载到本地。由服务托管的Web应用程序可以使用任何WSGI应用框架。
注册一个账户
首先是在官方网站创建一个账户,这里是 链接,之后点击 Create a Beginner account
简单填一下信息就可以注册成功。
成功后进入以上页面,右上角有几个选项分别是Dashboard
、Consoles
、Files
、Web
、Schedule
、Databases
,每一个都有不同的用处。
-
Consoles
控制台 -
Files
文件 -
Web
web 应用 -
Schedule
周期任务或特定时间任务 -
Database
数据库
部署
项目文件
将自己的项目文件上传到 Github 或者 Coding 等托管平台上方便下载。之后打开 Consoles
页面,选择 bash
终端,之后会打开一个如下的网页终端
将项目文件下载到服务器
$ git clone https://github.com/fbckf/fbckf.git
创建虚拟环境
为个人博客项目新建一个虚拟环境,不与其他应用混在一起
# 创建一个名为 blog 的虚拟环境 指定 python3 版本
$ mkvirtualenv --python=python3 blog
安装项目需要的包
# 之前克隆的项目文件中,在主目录有一个 virtualenv.txt 文件 里面是项目所需的所有包的名称
# 在 pip 命令 中加入参数 -r 加上该文件,安装所有需要的包
(blog) ~/fbckf(master)$ pip install -r virtualenv.txt
创建 web 应用
pythonanywhere 网站允许免费创建一个 web 应用,点击 web
选项 进入页面,点击 add a new web app
,再点击 next
进入下一步,注意,接下来会有几个选项,分为不同的 python web 框架,都不要选,点击最后一个Manual configuration(including virtualenvs)
,之后选择相应的 python 版本,本项目为 Python3.6 ,再一路选择 next
就可以了。
成功之后进入 web 应用管理页面,如下
image配置
- 配置 virtualenv
在 web 页面找到 Virtualenv
这一栏,点击 Enter path to a virtualenv, if desired
输入虚拟环境的路径 /home/[username]/.virtualenvs/[virtualenv_name]
像/home/fbckf/.virtualenvs/blog
- 匹配 wsgi
找到 Code
一栏,找到 /var/www/csx_pythonanywhere_com_wsgi.py
,这是创建时默认提供的wsgi.py
,点击进去修改代码
# 删除原所有代码
import os
import sys
path = '/home/fbckf/fbckf/'
if path not in sys.path:
sys.path.append(path)
os.chdir(path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fbckf.settings")
import django
django.setup()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
- 配置静态文件
找到 Static files
一栏,点击 Enter URl
添加 /static/admin
点击 Enter path
添加路径 /home/fbckf/.virtualenvs/blog/lib/python3.6/site-packages/django/contrib/admin/static/admin
,这是 admin 应用的静态文件。之后再添加 URL /static/
和 path /home/fbckf/fbckf/static
- 配置项目文件 settings.py
# fbckf/settings.py
...
# DEBUG=True 时为开发模式,django会将错误信息输出到网页
# 而在真正的生产环境时,这些敏感信息就不能暴露出来,所以将其设置为 False
DEBUG = False
# ALLOWED_HOSTS 中是允许访问的域名,假如域名没有添加在这个列表中,则无法使用该域名访问应用
ALLOWED_HOSTS = ['fbckf.pythonanywhere.com']
...
配置完成之后,点击 Reload
栏中的 Reload fbckf.pythonanywhere.com
按钮重新加载 web 应用,之后就可以通过 url fbckf.pythonanywhere.com
访问博客项目了
总结
PythonAnyWhere 提供的这个免费 web 应用可以运行三个月,三个月之后需要再次登录账户点击 Run until 3 months from today
这个按钮让它继续运行。
网友评论