flask框架总结(二)——企业实践篇

之前介绍过flask框架的基础应用,这篇主要介绍下项目中flask框架里的实操应用,如果对您有用,请记得关注,点赞,同时也欢迎大家留言讨论。
ps: 为方便,用的pycharm,windows演示的。

目录

    • 项目结构技巧
    • 装饰器使用技巧
    • 日志服务使用技巧
    • 异步脚本使用技巧
    • 定时器使用技巧

项目结构技巧

先贴出演示项目的目录
flask框架总结(二)——企业实践篇_第1张图片

app文件夹主要存放项目中的主要代码

  1. models文件夹存放数据模型类的文件(数据库的表模型)
  2. static 存放静态资源(一般不用了)
  3. templates 常用存放html资源文件
  4. utils 存放一些要用的工具类文件
  5. views 存放视图类文件(路由)

scheduler 文件夹主要存放一些项目中要用到的定时脚本
worker 文件夹主要存放一些项目中要用到的异步耗时任务
app.py 文件为项目的启动文件
config.py 文件为项目的配置文件
xxxx.sh文件为封装的启动脚本

装饰器使用技巧

flask框架总结(二)——企业实践篇_第2张图片
装饰器在flask项目中常用的有4个地方

  1. 蓝图中的路由使用到这个。如上图的index.route()
  2. 用户鉴权用到这个.如上图的auth_login()
  3. 在使用装饰器后,为了保留原函数的属性,使用functools.wraps(method),如果不加这个的话,index.name 返回的结果是wrapper而不是index.
    flask框架总结(二)——企业实践篇_第3张图片
  4. 在异步脚本中使用,celery.task标记是一个celery类型任务函数
    flask框架总结(二)——企业实践篇_第4张图片

日志服务使用技巧

flask框架总结(二)——企业实践篇_第5张图片
项目中主要是封装logger模块来实现日志,大致流程就是

  1. 创建一个logger对象,定义logger的等级。
  2. 创建日志流对象,设置流对象的格式
  3. 在logger对象的执行任务中增加流对象输出。
    样式如下图:
    在这里插入图片描述
    正常工作中还会根据日志的等级把日志存到文件中,例如把info和debug存到1个文件。error存到一个文件中。
    更完善点的 会接入预警模块 类似centry模块实时给开发者发送错误提醒。

异步脚本使用技巧

这里异步脚本 一般我用的是celery模块实现。
flask框架总结(二)——企业实践篇_第6张图片
flask框架总结(二)——企业实践篇_第7张图片
使用规则很简单。

  1. config.py中配置celery参数。
  2. 异步任务函数用celery.task()装饰器修饰。
  3. 调用函数的时候 用 函数名.apply_async((),{},countdown=延时时间) 去执行
  4. 提前开启异步任务脚本 python -m celery --app=worker.celery worker -c 8 --loglevel=info
    如果是在windows上学习,需要
pip install eventlet
python -m celery --app=worker.celery worker -c 8 --loglevel=info -P eventlet

在这里插入图片描述
在这里插入图片描述

定时器使用技巧

定时器功能的实现我用的是 apscheduler
flask框架总结(二)——企业实践篇_第8张图片
使用流程主要是

  1. 设置定时器的线程数量,创建定时器对象
  2. 编写定时任务代码,添加到定时器对象中
  3. 启动定时器任务
    当然 为了看到日志,需要加上日志功能,流程和日志功能一样。演示中我定时了一个3秒一次的定时任务。输出如下。
    flask框架总结(二)——企业实践篇_第9张图片

以上大致说了下项目中的一些功能模块的使用方法。后面再针对每个模块详细再讲些下。

附上演示项目代码
链接: 项目代码github地址.
希望对大家有帮助。

你可能感兴趣的:(flask框架)