专栏首页Crossin的编程教室把你开发的网站免费发布到互联网上(2)

把你开发的网站免费发布到互联网上(2)

前几天,我们介绍了通过 PythonAnywhere 在互联网上创建一个站点:

把你开发的网站免费发布到互联网上(1)

本篇是上一篇的延续,来讲一讲如何将已有的 Django 项目部署到 PythonAnywhere 上。

部署已有项目会稍微麻烦一些,依照惯例,先上流程图

1. 注册登录

同上篇

2. 新建 bash 控制台

我们需要将 GitHub 上的代码克隆过来,所以在 Consoles(控制台)下我们新建一个 bash 控制台。

点击 bash 进入一个类似 cmd 的操作界面。

3. 从 GitHub 上传代码

PythonAnywhere 上已经预装好了 git,所以只需在 bash 控制台下,使用 git clone 命令将 GitHub 的代码上传到服务器。

git clone https://your.github.site

对 git 操作有疑问的可以看看这份《git - 简明指南》:

http://rogerdudler.github.io/git-guide/index.zh.html

4. 建立虚拟环境

继续在 bash 控制台下操作。代码示例如下:

进入项目文件夹

cd mysite

virtualenv --python=python3.5 myvenv

source myvenv/bin/activate

其中 mysite 是你的项目名,myvenv 是你的虚拟环境目录名。

5. 下载所需安装包

接下来,使用 pip 下载项目中使用到的库,最基本的就是 django。

注意:每个人的项目中安装的库可能不一样,所以一定记得将所有项目中用到的库都下载。比如处理图片(如添加头像)用到的 Pillow,操作 MySQL 使用到的 pymysql 等。

pip install django

pip install pillow

...

6. 迁移数据库并创建管理员账户

创建数据表。当然需要预先配置好 MySQL 并建好库。

python manage.py migrate

创建管理员,按要求输入账户及密码。

python manage.py createsuperuser

到此,关于 bash 控制台的操作告一段落。

7. 修改 setting文件

进入到 Files 栏目中,编辑 settings.py 文件,修改其中的 ALLOWED_HOST 值,把你项目的域名添加进去。

修改示例:

ALLOWED_HOSTS = ['username.pythonanywhere.com']

注意:使用 MySQL 的同学还需要修改 settings.py 中 DATABASE 的设置。

8. 新建 Web-app

进入 Web 栏目,选择

Add a new webapp -> next -> Manual Configuration -> Python3.5 -> next

比较重要的两步截图如下:

9. 配置 WSGI

  1. 按照要求填写正确的项目文件夹
  2. 修改 WSGI 文件

修改 WSGI 配置文件,注意填写正确的 path 路径。

以下图中的信息为例,settings文件的完整路径为:

/home/zx576/zxsite_v0.3/mysite/settings.py

那么在文件中应该如下图所示填写

10. 其他的 web 设置

最后我们再设置一下虚拟环境路径,以及静态文件路径,本地项目中有 media 文件的小伙伴仍需要设置 media 路径。

结果如下图所示:

11. 展示

最后“Reload”一下,就开开心心去查看自己的网站吧!

下面是小编的半成品(捂脸逃:

12. 总结

以上就是将已有项目部署到 PythonAnywhere 的整个流程,回顾整个流程,拢共分三步:

  1. 上传代码
  2. 配置代码
  3. 配置环境

都是不难的知识,但每一步都有一些细节需要我们去认真对待,最后才能搭出自己的网站。

魔鬼在细节,编程之事大抵如此。

附上演示项目供参考:

网站地址

http://zx576.pythonanywhere.com

项目地址

https://github.com/zx576/zxsite_v0.3

2016 即将过去。祝大家新年有新的收获!

本文分享自微信公众号 - Crossin的编程教室(crossincode),作者:助教小Z

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-12-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Git 第10课】 版本回退

    昨天关于 PyCon 的介绍里有个小bug,北京场是14日,和其他分会场不是同一天。特此更正,北京的小伙伴们请注意。 ---------------- 上次说到...

    Crossin先生
  • 验证码的故事 (1)

    老网民们大概都记得,刚开始上网的时候,是不存在验证码(captcha)这么一种东西的。这造成的结果是,垃圾评论和垃圾邮件可以轻松通过任何一个网站的注册程序,通过...

    Crossin先生
  • #PY小贴士# git 的冲突

    为什么我的 git 在 pull 更新线上最新代码的时候提示失败,然后发现代码里多了一些奇怪的内容:

    Crossin先生
  • Git如何优雅的进行版本回退?

    在版本迭代开发过程中,相信很多人都会有过错误提交的时候(至少良许有过几次这样的体验)。这种情况下,菜鸟程序员可能就会虎驱一震,紧张得不知所措。而资深程序员就会微...

    Java识堂
  • 在Linux服务器(ubuntu 16)上部署并配置git

    子勰
  • Django实战-生鲜电商-小结-上

    项目快接近尾声了,不知道看到这一系列文章,对 python web 技术感兴趣,并且一直支持云团的小伙伴们,你们有怎样的收获?

    小团子
  • 《Drools7.0.0.Final规则引擎教程》第4章 4.2 lock-on-active

    lock-on-active 当在规则上使用ruleflow-group属性或agenda-group属性的时候,将lock-on-active 属性的值设置为...

    用户1161110
  • Tensorflow版本变动细节 & 自动移植代码到新版本下

    JNingWei
  • 【报名中】数据库大咖们与你聊聊云上实践的那些事儿

    导语:6月29日,深圳腾讯滨海大厦3F多功能厅,云+社区邀您参加《腾讯云数据库行业实战分享会》沙龙活动,腾讯云数据库携手微众银行、销售易、小程序·云开发,为您...

    腾讯技术工程官方号
  • POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)

    \(\sum_{i = 1}^k d_i \leqslant k(k - 1) + \sum_{i = k + 1}^n min(d_i, k)\)

    attack

扫码关注云+社区

领取腾讯云代金券