当前位置: 首页 > news >正文

关于 Flask 3.0+的 框架的一些复习差异点

  • flask-version: 3.0.3
搭建项目框架
  • 项目入口 如 main.py 或者 manage.py 只做启动项目时间,与创建app,配置app进行解耦。
from school import create_app, db, setup_log
app = create_app("development")
setup_log('development')if __name__ == '__main__':app.run(host="127.0.0.1", port=5000, debug=True)
  • 创建模块module和log目录以及 config.py 配置文件夹。
    - module 模块存放子模块,包含蓝图以及子视图的逻辑
    - log 目录用以存放log文件,用current_app.logger.error(e) 进行调用, log配置函数定义在module文件夹的 __init__.py
    - config 文件 用来存放 不同开发环境的配置,比如 开发环境 测试环境 生产环境,对应的 debug等级不同。基本定义如下:
   class Config(object):"""工程配置信息"""SECRET_KEY = "xxx/+xss+xxx"# 数据库的配置信息SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:mysql@127.0.0.1:3306/school"SQLALCHEMY_TRACK_MODIFICATIONS = True# redis配置REDIS_HOST = "127.0.0.1"REDIS_PORT = 6379# session 配置SESSION_TYPE = "redis"  # 指定 session 保存到 redis 中SESSION_USE_SIGNER = True  # 让 cookie 中的 session_id 被加密签名处理SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 使用 redis 的实例PERMANENT_SESSION_LIFETIME = 86400  # session 的有效期,单位是秒class DevelopmentConfig(Config):DEBUG = TrueLOG_LEVEL = logging.DEBUGclass ProduceComfig(Config):DEBUG = FalseLOG_LEVEL = logging.ERROR

这里需要注意 在使用 orm 的时候

pip install flask-sqlalchemy
pip install flask-mysqldb
# 那么在Config函数中配置 mysql 就需要 mysql+pymysql 不然报错SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:mysql@127.0.0.1:3306/school"SQLALCHEMY_TRACK_MODIFICATIONS = True
  • module 文件夹下 init.py 要处理如下事情
    • 配置数据库
    • 配置redis
    • 数据库迁移
    • 开启csrf 防护
    • 函数入口 -index
    • 请求钩子处理 如 404页面 和 设置 cookie
def create_app(config_name):app = Flask(__name__)# 配置app.config.from_object(config_dict[config_name])# 配置数据库db.init_app(app)# 数据库迁移migrate = Migrate(app, db)# 配置redisglobal redis_storeredis_store = redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)# 开启csrf保护CSRFProtect(app) # 解决csrf_token# 设置session保存位置Session(app)
关于数据库迁移

需先声明环境变量

#flask 迁移数据库
export FLASK_APP=manage.py
flask db init # once need 只需要在第一次同步数据库的时候用
flask db mgrate -m''
flask db upgrade
关于静态文件
  • 需要定义在module 目录下
http://www.dtcms.com/a/341787.html

相关文章:

  • 在 Linux 和 Docker 中部署 MinIO 对象存储
  • 深入解析:生产环境 SQL 数据库的架构设计与工程实践
  • 税务专业人员能力构建与发展路径指南
  • ubuntu系统上的conda虚拟环境导出方便下次安装
  • 【网络运维】Linux 文本搜索利器: grep命令
  • JavaBean中首字母小写第二个字母大写属性转换异常详解
  • GIT总结一键式命令清单(顺序执行)
  • redis---常用数据类型及内部编码
  • 官网SSO登录系统的企业架构设计全过程
  • 七十四、【Linux数据库】MySQL数据库存储引擎
  • 11让LLM更懂FunctionCalling返回值
  • S32K3 的图形化配置和EB配置mcal差异
  • week2-[二维数组]排队
  • MySQL/Kafka数据集成同步,增量同步及全量同步
  • Windows 如何清理右键菜单?电脑桌面右键菜单里出现一个清理内存 怎么去掉?
  • 数据结构中邻接矩阵中的无向图和有向图
  • 流固耦合|01流固耦合分类
  • 面试 TOP101 二分查找/排序专题题解汇总Java版(BM17 —— BM22)
  • Alpha测试:软件上线前的关键环节
  • 意象框架:连接感知与认知的统一信息结构分析——基于上古汉语同源词意义系统的词源学与认知语言学探索
  • 深入理解与应用向量嵌入(Vector Embeddings):原理、实现与多场景实践
  • 轻量级流程编排框架,Solon Flow v3.5.0 发布
  • WEB安全篇:浏览器攻击原理及防护
  • 软件设计师——数据结构与算法基础学习笔记
  • mac安装Trae并解决App Unavailable问题
  • 【Java进阶】Java JIT 编译器深度解析与优化实践
  • 49.Seata-XA模式
  • Day57 Java面向对象12 多态
  • 齐次线性方程组最小二乘解
  • 压缩包密码找回工具递归解压增强版使用说明