使用 flask 完成的电影列表项目, 查看 demo
├── db/ # 数据库文件
├── models/ # 模型
├── reports/ # 测试覆盖率报告
├── routes/ # 路由
├── static/ # 静态目录
├── tests/ # 测试
├── templates/ # 模板
├── app.py # 入口文件
├── commands.py # 命令
├── config.py # 配置
├── context.py # 上下文管理
└── .flaskenv # 开发环境变量
基本功能包括:
- 登录登出, 注册新用户
- 对 watch list 的增删改查
- 用户修改个人信息包括: 密码更新, 头像上传
用户权限:
admin 用户
: 用户账号密码均为admin
(可在commands.py
里面找到), 可以对 watch list 进行完整的增删改查功能普通用户
: 使用页面注册, 或者flask new-user
注册的新用户均为普通用户, 只能对 watch list 进行增加, 不得更新和删除
$ git clone https://github.com/hacker0limbo/watchlist
$ cd watchlist
$ pip3 install -r requirements.txt
$ flask initdb
$ flask forge
$ flask run
* Running on http://localhost:8000/
自定义命令包括: flask initdb
, flask forge
, flask new-user
, flask test
, flask coverage
可以通过 flask --help
查看
$ flask --help # 查看所有命令
...
Commands:
coverage 输出覆盖率测试
forge 产生 mock 数据
initdb 初始化数据库表的 schema
new-user 手动生成新的用户数据
routes Show the routes for the app.
run Run a development server.
shell Run a shell in the app context.
test 运行测试
flask initdb
: 用于初始化数据库表结构flask initdb --drop
: drop 已有的表, 重新生成数据库与表结构
flask forge
: 用于生成 mock 数据, 包括 admin 用户和电影信息
flask new-user
: 用于生成新普通用户
$ flask new-user
...
Username: limboer
Password:
Repeat for confirmation:
Creating new user...
Done.
flask test
: 运行tests/
目录下的所有测试文件
flask coverage
: 在终端输出测试报告flask coverage --html
: 在reports/coverage
目录生成index.html
的 html 形式报告
- helloflask, 基础部分均参考于此
.flaskenv
文件需要修改 FLASK_ENV=production- 安装依赖的时候需要加上
--user
, 如:pip3 install --user -r requirements.txt
- 编辑 wsgi 文件的时候需要从项目的
wsgi
(WSGI configuration file)里面导入, 例如我的为:import sys path = '/home/limboer/watchlist' if path not in sys.path: sys.path.insert(0, path) from wsgi import app as application
- 关于 flask config 文件配置
- 关于测试
- 关于 api 设计的参考
- 关于将 orm 实例转成 dict 对象
- 关于重写 hash 和 eq
- 关于 flask-login 项目的基本操作
- 关于 flask-uploads 上传文件的实例