如何在Flask中为单个函数设置动态路由实现用户验证?
在Flask中实现用户验证的动态路由
嘿,你要的这种动态路由在Flask里实现起来超简单!核心就是利用Flask的动态URL规则,把用户专属标识作为路由里的变量,就能让同一个视图函数处理所有这类验证请求啦。
具体实现思路
- 在路由装饰器里用
<变量名>的语法定义动态部分,比如你需要的verificationUser后面跟着用户标识的格式,直接把标识部分写成变量即可 - 如果你的用户标识是数字类型,还可以给变量加上类型限定(比如
<int:user_id>),这样Flask会自动校验URL里的内容是不是整数,无效请求会直接返回404,更严谨
示例代码
from flask import Flask app = Flask(__name__) # 第一种:匹配所有verificationUser开头的路径(支持数字/字符后缀) @app.route('/verificationUser<user_id>') def handle_verification(user_id=""): # 这里user_id默认是空字符串,能匹配/verificationUser(无后缀)的情况 return "hello" # 第二种:只匹配数字后缀的用户标识(更严谨) @app.route('/verificationUser<int:user_id>') def handle_verification_int(user_id): return "hello" if __name__ == '__main__': app.run(debug=True)
小说明
- 第一个路由可以匹配
/verificationUser、/verificationUser2、/verificationUserabc这类所有以verificationUser开头的路径,适合用户标识可能包含非数字的场景 - 第二个路由只接受数字后缀的请求,比如
/verificationUser1、/verificationUser100,能过滤掉无效的URL - Flask会优先匹配更具体的路由,所以如果同时定义了上面两个,数字后缀的请求会先走第二个路由
- 要是后续需要根据用户ID做验证逻辑,直接在函数里用
user_id参数就行,扩展起来很方便
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

