flask路由系统
路由系统
-
路由的两种写法
def index(): return render_template('index.html') app.add_url_rule('/index', 'index', index) # 公司里一般用这种方式 @app.route('/login') def login(): return render_template('login.html')
-
路由加载的源码流程
- 将url和函数打包成为 rule 对象 - 将rule对象添加到map对象中。 - app.url_map = map对象
-
动态路由
@app.route('/login') def login(): return render_template('login.html') @app.route('/login/<name>') def login(name): print(type(name)) return render_template('login.html') @app.route('/login/<int:name>') def login(name): print(type(name)) return render_template('login.html')
-
支持正则表达式的路由
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()
希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华