Routing System
- There are two routes flask wording:
The first: Decorators form (recommended)
@app.route("/index")
def index():
return "ok"
The second:
def index():
return "ok"
app.add_url_rule('/index','index',index)
- Routing loading process
1.执行装饰器的route方法,返回decorator方法
2.把视图函数当做参数传进decorator方法并执行
3.执行add_url_rule方法
4.将rule对象添加到map中
5.app.url_map是map对象
- Dynamic Routing
from flask import Flask, session
app = Flask(__name__)
@app.route("/index/<int:num>") # 获取参数
def index(num): # 接收参数
return "ok"
if __name__ == '__main__':
app.run()
Routing support regular expressions (extended)
from flask import Flask,render_template
app = Flask(__name__)
from werkzeug.routing import BaseConverter
class RegConverter(BaseConverter):
def __init__(self, map, regex):
super().__init__(map)
self.regex = regex
app.url_map.converters['regex'] = RegConverter
@app.route('/index/<regex("\d+"):x1>')
def index(x1):
return render_template('index.html')
if __name__ == '__main__':
app.run()