Flask 框架 redirect() url_for()

url_for

url_for 函数根据传入的端点名称(即路由函数名)生成对应的 URL。在这里插入图片描述

1. url_for()

url_for 函数根据传入的端点名称(即路由函数名)生成对应的 URL。

它接受一个或多个参数,其中第一个参数是路由的名称(也称为端点),其余参数是动态路由部分的值或查询字符串参数。这个函数会根据你的路由配置动态地生成 URL。

用途:

在模板或视图中生成指向其他路由的链接。
避免在代码中硬编码 URL,使应用更加灵活和可维护。
示例:

from flask import Flask, url_for  
  
app = Flask(__name__)  
  
@app.route('/')  
def index():  
    # 生成指向 /user/123 的 URL  
    user_url = url_for('user_profile', user_id=123)  
    return f'Go to <a href="{user_url}">User Profile</a>'  
  
@app.route('/user/<int:user_id>')  
def user_profile(user_id):  
    return f'User ID: {user_id}'  
  
if __name__ == '__main__':  
    with app.test_request_context():  
        print(url_for('index'))  # 输出: /  
        print(url_for('user_profile', user_id=123))  # 输出: /user/123

2. redirect()

redirect() 函数用于执行 HTTP 重定向。

当调用这个函数时,它会生成一个响应对象,该对象包含一个状态码(通常是 302,表示临时重定向,或者 301,表示永久重定向)和一个 Location 头部。

该头部包含了目标 URL。当浏览器接收到这个响应时,它会自动向新的 URL 发起请求。

用途:

表单提交后重定向到另一个页面,以避免表单重复提交(Post/Redirect/Get 模式)。
当用户尝试访问已移动的资源时,将其重定向到新位置。
在用户完成某项操作(如登录或注册)后,将其重定向到另一个页面。
示例:

from flask import Flask, redirect, url_for  
  
app = Flask(__name__)  
  
@app.route('/login')  
def login():  
    # 假设这里有一些登录逻辑  
    # 登录成功后重定向到主页  
    return redirect(url_for('index'))  
  
@app.route('/')  
def index():  
    return 'Welcome to the home page!'  
  
if __name__ == '__main__':  
    app.run(debug=True)

相关推荐

  1. Python Flask 框架开发

    2024-07-22 20:04:04       59 阅读
  2. flask框架-03

    2024-07-22 20:04:04       30 阅读
  3. 【python】Flask Web框架

    2024-07-22 20:04:04       45 阅读
  4. Flask和Go框架相比

    2024-07-22 20:04:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 20:04:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 20:04:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 20:04:04       45 阅读
  4. Python语言-面向对象

    2024-07-22 20:04:04       55 阅读

热门阅读

  1. Redis哨兵模式实践

    2024-07-22 20:04:04       15 阅读
  2. MLlib机器学习入门:用Spark打造预测模型

    2024-07-22 20:04:04       19 阅读
  3. python绘制函数调用图总结

    2024-07-22 20:04:04       16 阅读
  4. PHP 表单验证:邮件和URL

    2024-07-22 20:04:04       17 阅读
  5. org.apache.ibatis.session是什么?

    2024-07-22 20:04:04       13 阅读
  6. C语言 指针方法 有一个班4个学生,5门课程

    2024-07-22 20:04:04       12 阅读
  7. C++中的explicit关键字

    2024-07-22 20:04:04       13 阅读
  8. 数组常见的实例方法

    2024-07-22 20:04:04       14 阅读
  9. 精通Gradle发布配置:打造自动化部署的高速公路

    2024-07-22 20:04:04       16 阅读
  10. 力扣283.移动零

    2024-07-22 20:04:04       15 阅读
  11. SAP 如何修改统驭科目类型

    2024-07-22 20:04:04       15 阅读