flask项目--新闻类项目

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步:

  1. 自己调用generate_csrf生成随机的csrf_token并保存起来。

  2. 把csrf_token的内容告诉给客户端。
    在这里插入图片描述

csrf_token产生

  1. 在客户端发起请求时,如果请求方式有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()

猜你喜欢

转载自blog.csdn.net/qq_43030934/article/details/83549432