1.Flask项目基本设置
数据库配置-Flask-SQLAlchemy扩展使用。
from flask_sqlalchemy import SQLAlchemy
class Config(object):
“”“项目配置类”""
# 数据库相关配置
# 使用的数据库链接地址
SQLALCHEMY_DATABASE_URI = ‘mysql://:@:host:port/’
# 关闭追踪数据库的修改
SQLALCHEMY_TRACK_MODIFICATIONS = False
#创建SQLAlchemy对象
db = SQLAlchemy(app)
session存储的设置-Flask-Session扩展的使用。
from flask_session import Session
class Config(object):
“”“项目配置类”""
# session存储的相关配置
# 设置session存储到redis中
SESSION_TYPE = ‘redis’
# redis链接对象(给flask-session扩展使用的)
SESSION_REDIS = redis.StrictRedis(host=, port=)
# 开启返回给浏览器cookie session
值的加密
SESSION_USE_SIGNER = True
# 设置session过期时间
PERMANENT_SESSION_LIFETIME = 2436002
#创建Session对象
Sesssion(app)
为Flask项目开启CSRF保护-Flask-WTF扩展中CSRFProtect类的使用。
flask项目没有CSRF(跨站请求伪造)保护,需要使用CSRFProtect来开启。
from flask_wtf.csrf import CSRFProtect
#为flask项目开启CSRF保护,默认针对POST
|PUT
|DELETE
|PATCH
四种请求方式有保护验证。
CSRFProtect(app)
注: CSRFProtect只帮助我们做CSRF验证工作。
需要我们自己实现以下3步:
-
自己调用generate_csrf生成随机的csrf_token并保存起来。
-
把csrf_token的内容告诉给客户端。
csrf_token产生
- 在客户端发起请求时,如果请求方式有csrf验证,需要在表单数据或请求头中携带csrf_token。csrf_token请求携带
命令行管理和数据库迁移管理-Flask-Script扩展&Flask-Migrate扩展使用。
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
#创建Manager管理对象
manager = Manager(app)
#创建Migrate对象
Migrate(app, db)
添加数据库迁移管理命令
manager.add_command(‘db’, MigrateCommand)
if name == ‘main’:
manager.run()