Flask 框架 redirect() url_for()

url_for

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

1. url_for()

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

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

用途:

在模板或视图中生成指向其他路由的链接。

避免在代码中硬编码 URL,使应用更加灵活和可维护。

示例:

python 复制代码
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 模式)。

当用户尝试访问已移动的资源时,将其重定向到新位置。

在用户完成某项操作(如登录或注册)后,将其重定向到另一个页面。

示例:

python 复制代码
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)
相关推荐
cdut_suye4 分钟前
全面剖析 Linux 进程管理与 PCB 机制
java·linux·运维·服务器·c++·人工智能·python
qq_139484288211 分钟前
springboot433-基于SpringBoot的流浪猫爱心救助系统(源码+数据库+纯前后端分离+部署讲解等)
java·数据库·vue.js·spring boot·后端·maven·intellij-idea
寻月隐君21 分钟前
Python 数据结构与算法:课程笔记与实战解析
后端·python·github
云雨雪34 分钟前
朋友,你也不想不懂RPC的事情被同事发现吧?(附DEMO,快来玩!)
后端·微服务·rpc
红队it37 分钟前
【数据分析大屏】基于Django+Vue汽车销售数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
python·数据分析·spark·汽车·大屏端
梦兮林夕40 分钟前
深入浅出 Gin 路由管理:从基础到最佳实践
后端·go·gin
蹦蹦跳跳真可爱5891 小时前
Python----计算机视觉处理(opencv:图片灰度化)
人工智能·python·opencv·计算机视觉
Seven971 小时前
【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
java·后端·设计模式
梦醒沉醉1 小时前
Scala的初步使用
开发语言·后端·scala
重庆穿山甲1 小时前
建造者模式实战指南:场景案例+实战代码,新手也能快速上手
后端