设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 6661|回复: 0
打印 上一主题 下一主题

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

[复制链接]

169

主题

1

好友

733

积分

版主

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2018-7-9 18:16:25 |只看该作者 |倒序浏览
0. 前言
之前我们写过很多代码,但几乎都是在自己的电脑上运行的。如果别人要看,也只能在电脑上演示,或者把代码发给他运行。

而在学习 web 开发,比如 Django、Flask、webpy 等框架的过程中,我们会有将网站上线的需求,用来测试或展示。

如何可以让我们写的网站通过互联网来访问呢?

本篇文章就将介绍如何免费且快速的在 PythonAnywhere 上部署自己的 Django 网站。与 PythonAnywhere 类似的免费平台还有 Heroku,Openshift 等,收费平台有阿里云、亚马逊 AWS、微软 Azure 等。

本文包括两部分:
直接在 PythonAnywhere 新建项目在 PythonAnywhere 上部署已有项目1. 部署前须知
1.1 部署环境

针对本次部署的一些说明:
Python 版本:3.5Django 版本:1.10数据库采用 Django 自带的 sqlite3
1.2 遇到问题怎么办

由于每个人的部署环境,代码量不一样,所以部署的过程中很可能会出现问题,所以在此贴出两个英语版本教程,可以结合本教程来看:


2.1 注册登录

这个没啥特别的地方,不赘述。PythonAnywhere 网站:


然后按照提示依次选择框架和版本,完成配置:

next -> django -> Python3.5 -> next

2.3 修改 urls 和 views 文件

这是新建项目最关键的一步。这里我们新增一条对网站根目录路径的响应处理,返回一个包含字符“hello,world”的网页。

进入 Files 分页:

如下图所示修改urls文件:

新建 views.py 文件后,添加如下代码:

2.4 运行

完成修改之后,需要点击一下 Reload 重新载入修改后的网站。

下面是见证奇迹的时刻!

打开你注册时设定的网址,将会看到如下图所示的页面:

以上,就是新建项目的整个过程。如果在此基础上增加页面,只需要对 urls.py、views.py 进行修改,必要时增加 models.py。基本上就是将本地开发搬到网页上操作。了解过 Django MTV 模式的同学是不是觉得很简单呢?
3. 部署已有项目到PythonAnywhere
接下来再讲一讲如何将已有的 Django 项目部署到 PythonAnywhere 上。这个要稍微麻烦一些,依然先上流程图:

3.1 注册登录

同 2.1

3.2 新建 bash 控制台

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

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



3.3 从 GitHub 上传代码

PythonAnywhere 上已经预装好了 git,所以只需在 bash 控制台下,使用 git clone 命令将 GitHub 的代码上传到服务器。
  1. git clone https://your.github.site
复制代码
对 git 操作有疑问的可以看看这份《git - 简明指南》:git - the simple guide - no deep shit!


3.4 建立虚拟环境

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

进入项目文件夹
  1. cd mysite
  2. virtualenv --python=python3.5 myvenv
  3. source myvenv/bin/activate
复制代码
其中 mysite 是你的项目名,myvenv 是你的虚拟环境目录名。

3.5 下载所需安装包

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

注意:每个人的项目中安装的库可能不一样,所以一定记得将所有项目中用到的库都下载。比如处理图片(如添加头像)用到的 Pillow,操作 MySQL 使用到的 pymysql 等。
  1. pip install django
  2. pip install pillow
  3. ...
复制代码
3.6 迁移数据库并创建管理员账户

创建数据表。当然需要预先配置好 MySQL 并建好库。
  1. python manage.py migrate
复制代码
创建管理员,按要求输入账户及密码。
  1. python manage.py createsuperuser
复制代码
到此,关于 bash 控制台的操作告一段落。

3.7 修改 setting文件

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

修改示例:
  1. ALLOWED_HOSTS = ['username.pythonanywhere.com']
复制代码

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

3.8 新建 Web-app

进入 Web 栏目,选择

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

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

3.9 配置 WSGI
按照要求填写正确的项目文件夹修改 WSGI 文件
修改 WSGI 配置文件,注意填写正确的 path 路径。



以下图中的信息为例,settings文件的完整路径为:
  1. /home/zx576/zxsite_v0.3/mysite/settings.py
复制代码
那么在文件中应该如下图所示填写

3.10 其他的 web 设置

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

结果如下图所示:

3.11 展示

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

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

3.12 总结

以上就是将已有项目部署到 PythonAnywhere 的整个流程,回顾整个流程,拢共分三步:
上传代码配置代码配置环境
都是不难的知识,但每一步都有一些细节需要我们去认真对待,最后才能搭出自己的网站。



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



在公众号『Crossin的编程教室』(crossincode)里回复 部署,可查看演示博客网站(仿 WordPress)及参考 Django 项目代码。



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





其他文章及回答:






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-21 20:27 , Processed in 0.022956 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部