flask 项目总结
一,模块化的分离!
1,增加配置文件
''' 实际上是相当于把所有的大写类属性绑定到app.config之上(字典的形式) config.from_object 就是绑定属性的操作!app.config 是一个对象,对象有类的所有属性! ''' app.config.from_object(congig_name)
2,__init__ 是初始化项目的的开启!所有的需要的配置属性都要和app 绑定!
3,创建一个管理器,用来管理数据库对象与app对象!并且Manager 管理项目启动!
manager = Manager(app) Manager(app,db) # db 是指的是变量名称! MigrateCommand指的是迁移 manager.add_command('db', MigrateCommand)
4,# setting文件之中通过继承与增加特殊属性!
class DevelopmentConfig(Congig): """增加额外的属性DUBUG""" DEBUG = True class ProductionConfig(Congig): """生产模式下的配置""" DEBUG = True
5,Session(用来实现session存储的位置的)可以与redis 连接,并且配置三种信息到app属性 之中
class Congig(): REDIS_POST = 'localhost' REDIS_PORT = 6379 SESSION_TYPE = 'redis' # 连接数据库配置! SESSION_REDIS = redis.StrictRedis(host=REDIS_POST, port=REDIS_PORT) # 设置对 cookid 进行加密! SESSION_USE_SIGNER = True # session 有效期 SESSION_PERMANENT = 86400 * 7
6,跨站请求伪造
Flask-WTF 需要程序设置一个密钥。Flask-WTF 使用这个密钥生成
加密令牌,再用令牌验证请求中表单数据的真伪,app.config 有一个属性叫做'SECRET_KEY'
class Congig(): SECRET_KEY = 'asTFeAXtNhXNii7kwWzNlH/W7G84rHYC8YEeAAo0eJo=' app.config.from_object(Congig) from flask_wtf.csrf import CSRFProtect CSRFProtect(app)