flask学习第三节 重定向和url反转功能

1、重定向不解释了  大家估计都懂

2、Url反转  意思是根据视图函数 找到对应的url路径

直接上练习代码,继续上一节,修改代码为

from flask import Flask
import config
from flask import redirect, url_for

app = Flask(__name__)
app.config.from_object(config)


@app.route("/login/")  # 登录界面
def login():
    return "这是登录界面"


@app.route("/myorder/<is_login>/")
def myorder(is_login):
    if int(is_login) == 1:
        return "这是我的订单界面"
    else:
        loginpath = url_for("login")  # 也可以直接写路径上面定义的路径 但是这种不建议,毕竟修改路径比修改视图函数名可能性会更加大一点
        return redirect(loginpath)


if __name__ == "__main__":
    app.run()

 

我们在前端 输入的网址为 http://127.0.0.1:5000/myorder/1/   就会进入myorder界面

我们在前端 输入的网址为 http://127.0.0.1:5000/myorder/2/ 就会进入login界面 

刚才是在主app程序中进行url_for的引用,其实在html中我们也可以用这个函数 例如

转发和重定向是两种不同的URL处理方式,它们的区别如下: 1. 转发(Forwarding):当服务器接收到一个请求时,它会将请求转发给另一个资源或Servlet来处理,并将处理结果返回给客户端。客户端只知道最初请求的URL,并不知道后续的处理过程。转发是服务器内部的操作,对客户端是透明的。在转发过程中,客户端的请求对象被传递给另一个资源,可以在整个请求过程中共享相同的请求对象。 2. 重定向(Redirecting):当服务器接收到一个请求时,它会发送一个响应给客户端,告诉客户端请求的资源已经被移动到一个新的URL上。客户端会重新发送一个新的请求到新的URL上。重定向是一种客户端行为,客户端会重新发送请求到新的URL,因此客户端会看到新的URL。 主要区别如下: - 在转发中,整个请求处理过程在服务器内部完成,客户端并不知道实际处理的资源;而在重定向中,客户端会收到服务器发送的响应,然后重新发送请求到新的URL。 - 在转发中,URL不会改变;而在重定向中,URL会改变为新的URL。 - 转发是服务器内部的操作,对客户端是透明的;而重定向是一种客户端行为,客户端会看到新的URL。 总结来说,转发是服务器内部的操作,对客户端是透明的;而重定向是一种客户端行为,客户端会重新发送请求到新的URL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值