flask路由

1. flask路由系统是基于装饰器的

# 参数
# rule:路径
# methods :请求方式,列表
# endpoint: 路径别名
@app.route('/login', methods=['POST', 'GET'],endpoint='login')

2. 路由转换器

'default':          UnicodeConverter,
默认,不能一直携带/
'string':           UnicodeConverter,
字符串
'any':              AnyConverter,
任意类型
'path':             PathConverter,/严格要求,是拼接在根路径之后的,可以一直携带
'int':              IntegerConverter,
整型
'float':            FloatConverter,
浮点型
'uuid':             UUIDConverter,
uuid类型

3. 路由本质

# 本质:
# @app.route('/login', methods=['POST', 'GET'],endpoint='login')(index)
# 执行后的结果是 decorator(从route中去找),
# decorator(index)
@app.route('/login', methods=['POST', 'GET'],endpoint='login')
def index():
	return 123
decorator函数源码
 def decorator(f: T_route) -> T_route:
 	# f就是视图函数
     endpoint = options.pop("endpoint", None)
     # self就是flask的app对象
     self.add_url_rule(rule, endpoint, f, **options)
     # 没有对视图函数进行任何操修改
     return f
 return decorator
3.1 核心函数
self.add_url_rule(rule, endpoint, f, **options)
# app.add_url_rule('路由地址', '路由别名', 视图函数, **options)
参数详解
rule, URL:规则,路径地址
view_func:视图函数名称
defaults = None:默认值, 当URL中无参数,函数需要参数时,使用defaults= {'k': 'v'}为函数提供参数
endpoint = None:名称,用于反向生成URL,即: url_for('名称')
methods = None:允许的请求方式,如:["GET", "POST"]

#对URL最后的 / 符号是否严格要求
strict_slashes = None
#重定向到指定地址
redirect_to = None, 

4. endpoint

@app.route('/login', methods['POST','GET'],endpoint='login')
# endpoint参数不传默认以视图函数的名字作为值
# 加了装饰器,就会是装饰器函数的名字,可以使用wrapper再进行装饰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值