Base point
pycharm中打开debug模式:在终端中设置:
set FLASK_ENV=development (windows)
export FLASK_ENV=developm (mac)
flask run
开启debug会
- 激活调试器。
激活自动重载。
打开 Flask 应用的调试模式。
创建虚拟环境
python -m venv env
- 激活虚拟环境(win)
$ env\Scripts\activate
然后在虚拟环境中安装flask等
依赖
生成依赖文件
pip freeze > requirements.txt
安装依赖
pip install -r requirements.txt
flask_script
flaks_script通过命令的方式操作flask,跑起来开发版服务器、设置数据库,定时任务等。
1 | # manage.py |
通过自定义方法操作flask,使用方法为:
$ python manage.py hello
Blueprint
蓝图模块,帮助我们对于整体项目的分割,利于后续的管理和拓展。主要分为设置蓝图,注册蓝图,路由使用蓝图三部分。
1 |
|
至此,URL使用 localhost:5000/api/users/register 就可以访问注册路由。
flask-SQLAlchemy
- 查询结果
一般使用db.session.query()来查询结果,结果返回一个list,多条数据处理需要用到遍历,单挑数据则可以使用一下方式获得值并返回user = db.session.query(User).filter_by(name=’’liming).all()
- 数据接收
- post json格式
data = json.loads(request.get_data(as_text = True))
name = data.get(‘name’)
- get URL拼接
param = request.args[‘param’]
- 新增数据并提交数据库
user = User(name=”xxx”, dender=0)
db.session.add(user)
db.session.commit()
- 更新数据
user = db.session.query(User).filter(name=param.get(‘name’)).first()
user.attr = param.get(‘attr’)
db.session.commit()
Faker
生成大量的模拟数据
pip install Faker
1 | from faker import Faker |
flask_restplus
- pip install flask-restplus
- from flask_restplus import Api
Flask-RESTPlus提供的主要创建对象就是资源。资源创建于Flask可插入视图(pluggable view)之上,使得我们可以通过在资源上定义方法来很容易地访问多个HTTP方法。
flask_cors
解决跨域
- from flask_cors import CORS
- if Config.FLASK_ENV == ‘DEVELOPMENT’:
- CORS(app, supports_credentials=True)
namedtuple
namedtuple是继承自tuple的子类。namedtuple创建一个和tuple类似的对象,而且对象拥有可访问的属性。
用户权限细粒度管理
用户权限是一个常见的业务,这里使用scope模块在 token 进行验证时判断用户的接口访问权限,并且自定义的 scope 可以进行权限的合并与筛选,进行普通用户和管理员权限区分。scope 提供两套权限机制,api级别和蓝图级别,粒度粗细可以自己选择,十分灵活。
1 | # scope.py |