Flask架构--路由和蓝图

学习视频:第二章:路由和蓝图 1 Flask查询路由的方式_哔哩哔哩_bilibili

参考:Flask框架之路由与蓝图的使用_flask 路由和蓝图-CSDN博客

1.路由的概念:
用于将http请求与特定的python函数相匹配。定义路由后,flask程序可响应url的请求,执行响应函数,并将结果返回给用户。(将一个url与特定的函数绑定。)

创建方法:@app.route装饰器。(装饰器@app.route(url)为某个url指定对应的视图函数)

falsk框架中,视图定义在那,路由就跟着在哪。查看所有的路由,需要查看所有的视图函数。

2.在一个统一的路口,查看所有的路由信息:

方式一:直接使用命令:flask routes(需要先制定app的),之后使用该命令,展示出的路由信息就是该app的路由信息。

输出结果为:视图函数名,请求方式,路径(只要加载静态图片就会存在static函数)。

方式二:直接在程序内部查看,通过app.url_map()方法。

需求一:在访问一个特定接口时,能够把flask后端中提供的所有路由都一次性展示给客户端。(需要对map对象进行处理,对输出格式进行微调,视图名称就是某种业务的名称)

app.url_map.iter_rules()方法返回一个列表。

更改函数:

点击链接进行指定页面,即可显示结果:

客户端在请求的过程中不止有ip地址、端口号和path路径,同样会指定请求的方式(get、post等),在确定函数编写前需要确定请求方式。

3.自定义请求方式

定义flask 视图时,如果不加入任何请求方式,他只支持get和自带的请求方式。

需要其他请求方式时,要放开请求方式,通过methods参数,他是一个列表形式的参数。

需求二:在构建一个网站时,不只有一个视图函数,业务逻辑处理多,可能需要定义很多接口,所以视图就会有很多。视图多的情况下,在文件中进行管理,用到蓝图。

4.蓝图:一种组织Flask程序路由的方式,更好地组织代码,使应用程序更加模块化、易于管理。通过使用蓝图,可以将应用程序划分成多个模块,每个模块内部定义自己的路由,将这些模块注册到主应用程序中。(Blueprint)

可以所有视图的所有路由添加前缀。

创建蓝图的三个步骤:

①创建一个蓝图对象,②在这个蓝图对象上进行操作,注册路由,指定静态文件夹,注册模板过滤器。③在应用对象上注册这个蓝图对象。

单文件蓝图和目录蓝图

对于目录文件,一般将蓝图对象放到某个指定目录包的__init__文件中,在该文件结尾在导入视图文件。

必须在视图文件结尾导入,负责会出现循环引用的问题。

5.蓝图内部的静态文件
6.蓝图内部模板目录

flask中debug模式的作用:

后端出现错误,会直接返回真实的错误信息给前端。

修改代码后,会自动重启开发服务器。

相关推荐
千里码aicood1 分钟前
flask-基于注意力机制的异常流量检测与自动防御系统
后端·python·flask
阿拉斯攀登1 分钟前
Linux高级权限:SUID、环境变量、服务启停安全风险
架构
维克兜率天2 分钟前
4.3.2.1 日常监控:上线只是开始
服务器·数据库·python·区块链·php·量化
Dawson Zhu8 分钟前
Agent Skill 自进化架构深度解析:从发现到落地的完整闭环
人工智能·语言模型·架构·aigc·agi
the局外人9 分钟前
学习 FastAPI 的 Day 2:用异步 ORM 完成增删改查
后端·python·fastapi
智搜广告12 分钟前
GEO优化公司怎么选?智搜广告从三个维度帮你判断
大数据·人工智能·python·elasticsearch·microsoft·geo
wanglei20070822 分钟前
软件架构设计中,各个组件之间的通信方式有哪些?
python
天远Date Lab27 分钟前
零信任架构实战:基于天远行驶OCR证识别构建自动化高并发物流车队准入网关
人工智能·架构·自动化·ocr
会飞的拖把28 分钟前
Python 面向对象编程详解:从类与对象到动态属性方法
开发语言·python
她的男孩34 分钟前
同一个接口,为什么销售只看到自己的订单?我拆了 681 行数据权限拦截器的源码
java·后端·架构