Flask框架的几个设计理念

简介: 其实这篇可看也可以不看。先说一下django的MTV模型(为啥是django呢,因为我之前学的是django)。MTV模型所谓的MTV ( Model–Template–View ),翻译一下就是模型、模板、视图。

其实这篇可看也可以不看。先说一下django的MTV模型(为啥是django呢,因为我之前学的是django)。

img_3f2101f14206b03aad66803d9fb827be.png
MTV模型

所谓的MTV ( Model–Template–View ),翻译一下就是模型、模板、视图。一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

flask同样也遵循这个MTV模型。用户发起一个请求,flask调用视图函数进行响应。

程序和请求上下文

Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。Flask使用请求对象封装了客户端发送的HTTP请求,传递给视图函数。

此外,Flask使用上下文临时把某些对象变为全局可访问
上下文分为程序上下文请求上下文

请求调度

程序收到客户端发来的请求时,需要找到处理该请求的视图函数。Flask会在程序的URL映射中查找请求的URL。URL映射是URL和视图函数之间的对应关系。Flask使用<u>app.route()</u>修饰器或非修饰器<u>app.add_url_rule()</u>生成映射。

请求钩子

主要在处理请求之前或之后执行代码时使用。请求钩子使用修饰器实现

  • before_first_request在处理第一个请求之前运行注册的函数
  • before_request 在每次请求前运行注册的函数
  • after_request 在每次请求之后运行未出错的注册函数
  • teardown_request 在每次请求之后运行注册函数,无视异常

响应

Flask调用视图函数后,会将其返回值作为响应的内容,状态码为200。
视图函数返回的响应可以接受三个参数,通常不用到第三个。

  1. 响应内容
  2. 状态码
  3. header字典
    例子如下:
    @app.route('/')
    def index():
    return '<h1> Bad request </h1>', 400
    此外还有重定向(redirect),特殊响应(abort)
目录
相关文章
|
1月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
2月前
|
SQL 安全 Java
除了Flask框架,还有哪些框架能防止SQL注入攻击?
这些框架都在安全方面有着较好的表现,通过它们的内置机制和安全特性,可以有效地降低 SQL 注入攻击的风险。然而,无论使用哪个框架,开发者都需要具备良好的安全意识,正确配置和使用框架提供的安全功能,以确保应用的安全可靠。同时,持续关注安全更新和漏洞修复也是非常重要的。
125 60
|
3月前
|
SQL 监控 安全
Flask 框架防止 SQL 注入攻击的方法
通过综合运用以上多种措施,Flask 框架可以有效地降低 SQL 注入攻击的风险,保障应用的安全稳定运行。同时,持续的安全评估和改进也是确保应用长期安全的重要环节。
205 71
|
3月前
|
安全 网络安全 数据安全/隐私保护
Flask框架的安全机制与其他框架相比有哪些优势和劣势?
总的来说,Flask 的安全机制在灵活性和可扩展性方面有其独特优势,但也需要开发者在安全方面投入更多的精力和努力,以确保应用的安全可靠运行。
86 12
|
3月前
|
安全 数据安全/隐私保护 开发者
Flask框架的安全性如何?
安全是一个持续的过程,需要不断地关注和更新。随着新的安全威胁的出现和技术的发展,开发者需要及时了解并采取相应的措施来应对,以确保 Flask 应用始终处于安全的状态。
182 63
|
3月前
|
搜索推荐 API 开发者
Django框架和Flask框架的适用场景分别是什么?
总体而言,Django 更适合需要全面功能和大规模开发的场景,而 Flask 则更适合灵活性要求高、小型项目或特定需求的开发。当然,具体的选择还应根据项目的具体情况、团队的技术能力和偏好等因素来综合考虑。在实际应用中,开发者可以根据项目的特点和需求,灵活选择使用这两个框架,或者结合它们的优势来构建更强大的 Web 应用程序。
162 64
|
3月前
|
开发者 数据库管理 Python
Django框架和Flask框架的区别
总体而言,Django 适合需要快速搭建大型应用的开发者,而 Flask 则更适合有特定需求和追求灵活性的开发者。
174 64
|
4月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
55 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
4月前
|
Python
Flask学习笔记(二):基于Flask框架上传图片到服务器端并原名保存
关于如何使用Flask框架上传图片到服务器端并以其原名保存的教程。
141 1
|
4月前
|
JSON 测试技术 数据库
Python的Flask框架
【10月更文挑战第4天】Python的Flask框架