Python 实战 · 从 0 到 1 搭建直播视频平台
Barry
某上市公司技术研发总监
3724 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
Python 实战 · 从 0 到 1 搭建直播视频平台
15
15
1.0x
00:00/00:00
登录|注册

20|匹配路由&异常捕获:如何用转化器实现匹配规则?

你好,我是 Barry。
这节课我们继续学习路由。静态路由和动态路由的作用都是处理用户请求的 URL,根据 URL 匹配相应的路由规则,从而将请求分发给相应的视图函数处理。
在上节课,我们学习了静态路由,但动态路由部分我们并没有展开讲解。这节课,我们一起来学习一下动态路由以及正则匹配路由,这也是在 Flask 框架中非常核心的技术应用。

动态路由

我们先来认识一下动态路由。动态路由可以根据界面的不同,生成不一样的 URL。不同于静态路由,动态路由往往在后边会有一个变量作为动态参数,我们通常将其命名为
动态路由的形式通常是 @app.route(‘/index/’) ,这个参数可以传入到我们的视图函数当中。
接下来,我们通过一个简单的案例来测试一下。
from flask import Flask
app = Flask(__name__)
@app.route('/index/<name>')
# http://127.0.0.1:5000/index/flask
def index(name):
return f'当前URL中的动态参数为:{name}'
# 当前请求的动态参数为:flask
在上面的例子当中,index() 函数可以返回 URL 中输入的动态参数 name。当我们在 URL 中输入 “127.0.0.1:5000/index/flask”时,页面也同样会打印我们传入的动态参数 flask。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Flask框架中使用转换器实现匹配规则,包括动态路由和异常捕获。动态路由可根据不同界面生成不同URL,系统自带转换器如int、float、bool,自定义转换器更灵活处理URL和参数。通过示例详细介绍了自定义转换器的实现过程,包括定义类、注册到应用中以及在URL规则中使用。使用正则表达式匹配路由,实现自定义匹配。异常捕获通过abort函数和errorhandler装饰器处理,提高用户体验和代码流畅度。 总结:本文介绍了Flask框架中动态路由和异常捕获的实现方法。通过自定义转换器和正则表达式匹配路由,实现了灵活的URL处理。异常捕获通过try-except语法结构实现,避免程序崩溃,提高用户体验。这些技术特点使得Flask框架在处理URL和异常方面更加灵活和可靠。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 实战 · 从 0 到 1 搭建直播视频平台》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • Forest
    正则的其他使用场景:数据格式校验、数据检索和提取

    作者回复: 回答的非常精准,感谢分享,一起加油。

    2023-06-09归属地:四川
    1
  • peter
    Q1:“VSCode中编辑vue文件,而vue文件是node解析的,这个关系应该是在VSCode中指定的吧。请问,是在VSCode的什么地方指定的?”,我在第17课中问过这个问题,不过老师误解我的意思了。 我知道VSCode不是node.js。我的问题是:那么,vue怎么就自动找到node解析了?谁告诉vue去找node解析?就是说vue和node之间存在一种关系,这种关系是在哪里指定的? (比如,一种可能是在VSCode中配置的) Q2:try .. except出异常后会自动施法资源吗? Q3:正则表达式字符串最前面的r表示什么?

    作者回复: 1、Vue是通过webpack来打包编译的,而webpack又是通过配置文件来进行配置的,其中就包括了使用哪种loader来解析.vue文件,而vue-loader就是其中之一。而vue-loader又依赖于node.js来进行解析和编译,所以在使用Vue开发时需要先安装node.js,并配置好环境变量,这样才能让Vue正常工作。在VSCode中并没有直接指定这种关系的地方,而是通过配置webpack来实现的。 2、在 Flask 中使用 try-except 语句捕获异常后,Flask 会自动释放资源。这是因为 Flask 框架使用 Werkzeug WSGI 服务器,该服务器会自动处理资源释放。 3、r表示“raw”,即原始字符串,它告诉Python解释器不要对字符串中的反斜杠进行转义。这是它的含义和用途。 继续加油!!!

    2023-06-07归属地:北京
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部