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模式的作用:

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

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

相关推荐
kunge1v51 小时前
学习爬虫第三天:数据提取
前端·爬虫·python·学习
爱学习的小鱼gogo1 小时前
python 矩阵中寻找就接近的目标值 (矩阵-中等)含源码(八)
开发语言·经验分享·python·算法·职场和发展·矩阵
Hello.Reader1 小时前
Flink 状态模式演进(State Schema Evolution)从原理到落地的一站式指南
python·flink·状态模式
红纸2811 小时前
Subword算法之WordPiece、Unigram与SentencePiece
人工智能·python·深度学习·神经网络·算法·机器学习·自然语言处理
红纸2811 小时前
Subword分词方法的BPE与BBPE
人工智能·python·深度学习·神经网络·自然语言处理
zy_destiny1 小时前
【工业场景】用YOLOv8实现反光衣识别
人工智能·python·yolo·机器学习·计算机视觉
没有bug.的程序员2 小时前
分布式缓存架构:从原理到生产实践
java·分布式·缓存·架构·分布式缓存架构
蛋仔聊测试2 小时前
Playwright 文件上传与下载完成判断全指南
python·测试
傻啦嘿哟2 小时前
Python高效实现Excel转PDF:无Office依赖的轻量化方案
python·pdf·excel
Eiceblue2 小时前
Python OCR 技术实践:从图片中提取文本和坐标
开发语言·python·ocr·visual studio code