分享

flask第二十一篇——练习题

 孟船长 2022-02-24

自定义url转化器

实现一个自定义的URL转换器,这个转换器需要满足的是获取从多少到多少的url,例如,你输入的地址是http://127.0.0.1:8000/1-5/,那么页面返回[1,2,3,4,5]

答案:

# coding: utf-8

from flask import Flask
from werkzeug.routing import BaseConverter app = Flask(__name__)  # type: Flask
app.debug = True

@app.route('/')
def hello_world():    return 'Hello World!'

class NumConverter(BaseConverter):    regex = r'\d+-\d+'    # 把url中的参数传到视图函数中,用to_python方法    def to_python(self, value):        tmp = value.split('-')
       if int(tmp[0]) < int(tmp[-1]):            nums = range(int(tmp[0]), int(tmp[-1])+1)
           return str(nums)
       else:
           return u'请检查传入的参数'    # 把类似[1,2,3]这样的列表转换成/1-3/这种url    def to_url(self, value):        min = value[0]        max = value[-1]        temp = '%s-%s' % (min, max)
       return temp app.url_map.converters['num'] = NumConverter

@app.route('/login/<num: values>/')
def numList(values):    return values

if __name__ == '__main__':    app.run()

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多