自定义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()
|