RUN__IT # flask day2

本文是关于Flask框架的第二天学习内容,涵盖了正则匹配路由,包括自定义转换器及其`to_python`和`to_url`方法,HTTP异常捕获与处理,请求钩子的使用,以及状态保持的实现,如cookie和session的管理。此外,还介绍了Flask的上下文概念以及如何使用flask-script扩展。
摘要由CSDN通过智能技术生成

day2

正则匹配路由

具体实现步骤为:

  • 导入转换器基类:在 Flask 中,所有的路由的匹配规则都是使用转换器对象进行记录

    from werkzeug.routing import BaseConverter
    
  • 自定义转换器:自定义类继承于转换器基类

    class RegexConverter(BaseConverter):
        def __init__(self,url_map,*args):
            super(RegexConverter,self).__init__(url_map)
            # 将接受的第一个参数当做匹配规则进行保存
            self.regex = args[0]
    
  • 添加转换器到默认的转换器字典中

    app = Flask(__name__)
    # 将自定义转换器添加到转换器字典中,并指定转换器使用时的名字随意指定(re)
    app.url_map.converters["re"] = RegexConverter
    
  • 使用自定义转换器实现自定义匹配规则

# 匹配一个三位数字
@app.route('/user/<re("[0-9]{3}"):user_id>')
def user_info(user_id):
    return "user_id:%s" % user_id

如果访问的url不符合规则,会提示找不到页面

to_python和to_url

继承于自定义转换器之后,还可以实现 to_python 和 to_url 这两个函数去对匹配参数做进一步处理

to_python

class RegexConverter(BaseConverter):
      def __init__(self,url_map,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值