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

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

项目结构技巧

先贴出演示项目的目录
在这里插入图片描述

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

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

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

装饰器使用技巧

在这里插入图片描述
装饰器在flask项目中常用的有4个地方

  1. 蓝图中的路由使用到这个。如上图的index.route()
  2. 用户鉴权用到这个.如上图的auth_login()
  3. 在使用装饰器后,为了保留原函数的属性,使用functools.wraps(method),如果不加这个的话,index.name 返回的结果是wrapper而不是index.
    装饰器代码
  4. 在异步脚本中使用,celery.task标记是一个celery类型任务函数
    在这里插入图片描述

日志服务使用技巧

在这里插入图片描述
项目中主要是封装logger模块来实现日志,大致流程就是

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

异步脚本使用技巧

这里异步脚本 一般我用的是celery模块实现。
在这里插入图片描述
在这里插入图片描述
使用规则很简单。

  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
在这里插入图片描述
使用流程主要是

  1. 设置定时器的线程数量,创建定时器对象
  2. 编写定时任务代码,添加到定时器对象中
  3. 启动定时器任务
    当然 为了看到日志,需要加上日志功能,流程和日志功能一样。演示中我定时了一个3秒一次的定时任务。输出如下。
    在这里插入图片描述

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

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

  • 12
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,我可以为您提供关于Python-Flask框架开发的图书管理系统的详细介绍和源码解析。这个系统是基于Flask框架的,可以帮助用户管理图书信息,包括添加、删除、修改和查询等功能。此外,系统还具有用户登录、注册、退出等功能,以确保数据的安全性和完整性。 系统的主要功能点如下: 1. 用户登录、注册、退出 2. 图书添加、删除、修改、查询 3. 图书分类管理 4. 用户权限管理 下面是系统的简要介绍: 1. 用户登录、注册、退出 用户需要先进行注册,注册成功后可以进行登录操作。登录成功后,用户可以进行图书管理操作。如果用户需要退出,可以点击退出按钮进行退出。 2. 图书添加、删除、修改、查询 用户可以在系统中添加图书信息,包括图书名称、作者、出版社、出版日期、价格等信息。用户还可以删除、修改和查询图书信息。查询支持按照图书名称、作者、出版社等条件进行查询。 3. 图书分类管理 用户可以对图书进行分类管理,包括新建分类、编辑分类和删除分类等操作。图书分类可以根据用户的需求进行自定义。 4. 用户权限管理 系统还具有用户权限管理功能。管理员可以对普通用户进行授权,授权后的用户可以进行添加、删除、修改和查询等操作。 下面是部分系统源码解析: 1. 登录操作 ``` @app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): user = User.query.filter_by(username=form.username.data).first() if user is not None and user.verify_password(form.password.data): login_user(user, form.remember_me.data) return redirect(request.args.get('next') or url_for('index')) flash('Invalid username or password.') return render_template('login.html', form=form) ``` 2. 图书添加操作 ``` @app.route('/add_book', methods=['GET', 'POST']) @login_required def add_book(): form = BookForm() if form.validate_on_submit(): book = Book(name=form.name.data, author=form.author.data, publisher=form.publisher.data, publish_date=form.publish_date.data, price=form.price.data) db.session.add(book) db.session.commit() flash('The book has been added.') return redirect(url_for('index')) return render_template('add_book.html', form=form) ``` 以上仅是系统源码的部分解析,系统的其他功能点和源码解析可以参考完整的源码和文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值