通过GitHub快速部署Flask App 到 Heroku Cloud


目的:
熟悉免费的Postgres服务注册和使用
尝试开发一个更实用的Web程序
通过GitHub快速部署
网站效果
上篇文章,我们成功在 Heroku 上部署 Python Flask App(Hello World),今天我们试着创建一个更实际些的应用,Todo List。
准备工作
安装必要的包
pipenv install psycopg2-binary flask-sqlalchemy 
psycopg2-binary Postgres适配器之一, 选择预编译版本,是为了避免安装postgresql-server-dev-xx
flask-sqlalchemy, SQLAlchemy是为Python编程语言提供的开源SQL工具包及对象关系映射器(ORM)
配置Heroku Postgres Add-on
Heroku提供了一个免费的 Postgres Add-on 计划,数据库的版本为12, 下面我就介绍下注册和应用, 有视频参考。
寻找Heroku Postgres选择Free Plan
连接成功后,Postgres的信息存储在系统变量DATABASE_URL中,我们可以通过设置里获得该信息,
Config Vars
我们可以通过Heroku CLI登录获得DATABASE_URL信息。如果需要,我们也可以通过修改该变量来使用别的数据库服务器。如果想使用DBeaver等客户端连接服务器,记得勾选sslmode='require',
sslmode='require'
视频讲解版
代码环节
app目录结构
本次开发遵照MVC(Model-View-Controller,模型-视图-控制器)的设计模式来进行,
M(模型)部分主要是数据库相关的代码
models.py(在本例中只有一张表todo),
from app import db   class Todo(db.Model):     id = db.Column(db.Integer, primary_key=True)     text = db.Column(db.String(200))     complete = db.Column(db.Boolean)       def __repr__(self):         return self.text 
该表包含三个字段,分别是,
id(主键)
text(待处理内容)
complete(完成情况),分为1:完成,0:未完成
V(视图)部分是主要是
模版(static/index.html),模版使用Jinja2渲染
CSS(static/main.css)
C(控制器)就是我们的
routes.py(在本例就是基本CRUD的实现)
初始化代码
初始化代码,从Hello Flask代码中的main.py移到了__init__.py,并增加了数据库的配置部分,
部署
本次使用GitHub的方式部署
把代码提交到GitHub[1]
git add .git commit -m "todo list"git push
部署
详见视频
参考资料
[1]
GitHub: https://github.com/alitrack/flask_heroku
小编提供有偿安装部署服务,欢迎私信骚扰。
喜欢我的文章,烦请【在看】、【转发】 和【关注】三连,🙏🙏!
到顶部