|
自定義url轉(zhuǎn)化器
實(shí)現(xiàn)一個自定義的URL轉(zhuǎn)換器,這個轉(zhuǎn)換器需要滿足的是獲取從多少到多少的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中的參數(shù)傳到視圖函數(shù)中,用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'請檢查傳入的參數(shù)'
# 把類似[1,2,3]這樣的列表轉(zhuǎn)換成/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()
|