把你开发的网站免费发布到互联网上(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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PhpZendo

深入浅出依赖注入

或许您已经在项目中已经使用过「依赖注入」,只不过由于某些原因,致使您对它的印象不是特别深刻。

10710
来自专栏MoeLove

Linux上源码编译MongoDB

MongoDB的官网上是有已经编译好的二进制包的,这里选择clone MongoDB在github上的仓库

15030
来自专栏软件测试经验与教训

一个实用的测试技巧

419100
来自专栏人工智能LeadAI

深度学习工具caffe详细安装指南

在一台系统环境较好的linux机器上可以很容易的安装caffe,但是如果系统本身很旧,又没有GPU的话,安装就太麻烦了,所有都得从头做起,本文档旨在尽可能覆盖安...

43890
来自专栏沈唁志

宝塔面板Mysql 5.6版本无法正常启动的解决方法

朋友找我的时候说的是 Mysql 启动不了,看他发的截图是宝塔面板,就要来了面板信息去看了一下

2.4K20

如何在Linux上搭建Terraria 游戏服务器?

Terraria是一款二维沙盒游戏,类似于Minecraft(我的世界),允许玩家在开放的世界中探索,构建和战斗。2015年,Terraria开发者宣布支持Li...

77930
来自专栏LanceToBigData

IDEA将项目上传至码云/GitHub托管

前言   好久都没有写博客了,由于博主之前一直都在上班处于加班的阶段,所以根本就没有时间去学习。现在请假回到学校写论文,有时间来学习了。   所以会不断的进行博...

50970
来自专栏北京马哥教育

使用monit搭建一个监控系统

马哥linux运维 | 最专业的linux培训机构 ---- 上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情。当然了主要是监控异常,因为我...

44070
来自专栏北京马哥教育

Python开源项目介绍:用zmail简单地发邮件

转载自:Python中文社区 ID:python-china 发送邮件是个很简单的需求,但是在实际的使用中依然碰到了很多坑,因此创建了zmail这个项目...

29260
来自专栏张戈的专栏

解决启用WP-Super-Cache后出现的几个问题

近期,随着新版互推联盟自适应 iframe 代码的推出,调用的博友也慢慢增加了 ,这是很高兴的事情,也有博友反应调用的这个页面加载会有点慢。我来说明一下,因为这...

43560

扫码关注云+社区

领取腾讯云代金券