python面试题(七)——flask框架

本文详细探讨了Flask框架的核心优势、依赖组件、蓝图功能以及使用过的第三方组件。介绍了Flask的上下文管理流程,包括RequestContext、AppContext、LocalStack和Local类的作用。此外,还讨论了g全局变量、WebSocket实现、session处理机制、信号库blinker的使用,以及SQLAlchemy中的session和scoped_session的区别。同时,文章提到了ORM实现原理、数据库连接池DBUtils和SQLAlchemy设置字符编码的方法。
摘要由CSDN通过智能技术生成

64.Flask框架的优势?
Flask自由、灵活,可扩展性强,透明可控,第三方库的选择面广,
开发时可以结合最流行最强大的Python库,

65.Flask框架依赖组件?
#依赖jinja2模板引擎
#依赖werkzurg协议

66.Flask蓝图的作用?
#blueprint把实现不同功能的module分开.也就是把一个大的App分割成各自实现不同功能的module.
#在一个blueprint中可以调用另一个blueprint的视图函数, 但要加相应的blueprint名.

67.列举使用过的Flask第三方组件?
#Flask组件
flask-session session放在redis
flask-SQLAlchemy 如django里的ORM操作
flask-migrate 数据库迁移
flask-script 自定义命令,写脚本。类似于python manager.py runserver
blinker 信号-触发信号
#第三方组件
Wtforms 快速创建前端标签、文本校验
dbutile 创建数据库连接池
gevnet-websocket 实现websocket
#自定义Flask组件
自定义auth认证
参考flask-login组件

68.简述Flask上下文管理流程?
#a、简单来说,falsk上下文管理可以分为三个阶段:
  1、‘请求进来时’:将请求相关的数据放入上下问管理中
  2、‘在视图函数中’:要去上下文管理中取值
  3、‘请求响应’:要将上下文管理中的数据清除
#b、详细点来说:
  1、‘请求刚进来’:
将request,session封装在RequestContext类中
app,g封装在AppContext类中
并通过LocalStack将requestcontext和appcontext放入Local类中
  2、‘视图函数中’:
通过localproxy—>偏函数—>localstack—>local取值
  3、‘请求响应时’:
先执行save.session()再各自执行pop(),将local中的数据清除

①为什么要有localproxy?
request = LocalProxy(partial(_lookup_req_object, ‘request’))
localproxy帮助我们使用:request.method
如果没有:
request =partial(_lookup_req_object, ‘request’)
Request().method要加括号
②local对象
{ 唯一标识: {
Stack: [] 可以是列表
}
}
web应用:stack可以是单值,列表

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值