flask框架——url_for()函数
概念:url_for() 是一个URL 反向解析器。
你给它一个视图函数的名字(或者蓝图名+视图函数名),它返回该视图对应的 URL。
# 使用url_for(视图函数名)即可返回对应视图函数的url from flask import Flask, url_for,Blueprint #创建Flask应用程序实例 app = Flask(__name__) # 为普通路由生成 URL @app.route('/user/profile') # 传的什么路径返回什么路径,ey:/helloworld def user_profile(): # 访问:http://127.0.0.1:5001/user/profile return url_for('user_profile') # /user/profile # 添加查询参数 # return url_for('user_profile', page=1, sort='name') # /user/profile?page=1&sort=name # 为带参数的路由生成 URL @app.route("/user/<username>") def show_user(username): # http://127.0.0.1:5001/user/test ---> 当前url是/user/test. 用户: test # 必须提供 username 参数 user_url = url_for('show_user', username=username) print(f"当前用户URL: {user_url}") return f"当前url是{user_url}. 用户: {username}" # 为蓝图中的路由生成 URL user_bp = Blueprint('user_bp', __name__) @user_bp.route('/login', methods=['GET']) def login(): # http://127.0.0.1:5001/login --->. 路径是: /login url= url_for('user_bp.login') return f'路径是: {url}' if __name__== "__main__": app.register_blueprint(user_bp) app.run('0.0.0.0',debug=True, port=5001)
在jinjia2模版中使用:
<!-- 链接到页面 --> <a href="{{ url_for('user.login') }}">登录</a> <!-- 显示图片 --> <img src="{{ url_for('static', filename='images/banner.jpg') }}" alt="Banner"> <!-- 带参数的链接 --> <a href="{{ url_for('show_user', username=current_user.name) }}"> 我的资料 </a>

浙公网安备 33010602011771号