学习flask的番外5之Pythonanywhere部署Flask项目

the photo from unsplash

说明:由于我在创建的时候中间忘记截图,所以用了人家的图片,有变化的我会说明,关于借用图片的来源我会在最后的参考文章中指出,同时如果有侵犯你的利益请联系我删除

写在前面

  就在几天前,然后我完成了我的练手的小项目。非常开心啊,于是想着要将项目展示给别人看,所以呢就打算部署到互联网上。部署到网上有两种方法,就是自己购买服务器然后部署和使用云平台来部署,我这里选择第二种的方法,第一种也会去尝试。

选择平台

  我在这里选择的是pythonanywhere,下面是官网传送门: 传送门
你需要注册账号,这个不用讲。然后你需要做一些提前的准备:

  • 创建一个web工程


    image.png

    中间的升级然后自定义域名直接跳过,然后我们选择自定义


    image.png

    然后选择和你项目匹配的python版本,现在是有最新的版本3.7
    image.png

    然后完成。

  • 将你的项目代码传到云平台上,你可以通过GitHub也可以直接传压缩包,我这里使
    用的是GitHub:
    首先是打开一个终端


    image.png

    然后直接使用git clone就好。

关于项目依赖的问题

这是一个很关键的问题,看你自己选择什么来管理环境,我在这里选择的是 pipenv来管理,你还有virtualenv可以选择或者直接在本地环境中安装所有依赖都是可以的。这里是关于pipenv的使用,进入bash中安装pipenv:

pip install pipenv

安装完成后创建虚拟环境

pipenv install

然后就等待吧,这一步你可以出去吃个饭,真的是太慢了!!!!!!!!!!因为网站是国外的,但是国内访问部署好的网站还挺快。当虚拟环境也创建好后我们开始进行其他设置。

网站设置

点击导航栏的Web进入你的web应用的控制面板


image

这里主要设置红色框中的内容:


image.png

image.png

第一个填入你源代码的文件夹路径,一定要填对,下面那个是你的工作目录。WSGI配置这个也很重要,我们下面专门说,如果你使用的是虚拟环境,那么你还需要指明你的虚拟环境位置,如果记不住,可以进入bash中输入:

pipenv -venv

会出现一个路径,复制然后填入就好,然后就是指定静态文件的存放位置。

WSGI配置文件

我们点击进入配置文件
image.png

然后删除中间所有,填入以下代码,后面解释:

import sys
path = '/home/Yznx/GooD-LEARN'

if path not in sys.path:
    sys.path.append(path)

from GoodLearn import craete_app
application = craete_app()


if __name__ == "__main__":
    application.run()

解释:

  • path根据自己的实际情况修改为自己的路径,前面4行代码是将你的源代码所在的文件夹设置为工作路径(大概就是这个意思
  • 后面是引入一个app实例,因为我的代码是使用工程函数,所以从这个模块中引入了工厂函数(有拼写错误,但是忘记改了,请忽略)然后创建了一个名叫application的实例,建议都叫做application。
    你的代码可能不是通过工程的函数来创建APP的,但是没有太大的关系,你只需要引入一个实例然后命名为application就好。

其实这个文件主要就是给uWsgi说明应该通过什么来启动程序,你总会创建Flask的实例对吧,从你创建实例的位置将实例引入命名为application就好。

数据库配置

如果你的程序不是使用的sqllite来当做你的数据库(一般都不用吧),那么你需要配置数据库,你可以选择自己搭建远程数据库或者是云数据库也可以选择使用Pythonanywhere提供的数据库,它支持MySQL和Postgresql。
image.png

根据你自己选择,然后设置你的密码


image.png

最关键的地方来了,配置好后怎么使用呢?
image.png

提供了URI,然后在配置文件中使用就好,用户名是你的登录名,密码是你自己设置的密码。

开始访问你的程序吧

当你设置完上面所有关键值后,你只需要刷新一下配置然后如果不出意外就可以访问了。
image.png

写在后面

参考文章:

  • https://zhuanlan.zhihu.com/p/56046697
    说明:最开始折腾就是参照这篇文章,然后在本文中使用了其中几张图片,
  • https://www.cnblogs.com/Ray-liang/p/4837850.html
    说明:参考WSGI文件的编写

你可能感兴趣的:(学习flask的番外5之Pythonanywhere部署Flask项目)