python flask 定义302状态和重定向

简介: python flask 定义302状态和重定向

首先,我们来讨论下什么叫重定向,什么又叫临时重定向(302),什么又叫永久重定向(301)


重定向:我们在浏览器上输入网址的时候,浏览器解析我们的网址,并且跳转到这个网址里,重定向就是,在浏览器跳转到这个页面后,因为设置了重定向,所以,我们的链接是我们输入的链接,但是,页面就变成了重新指向的链接的页面.


临时重定向:我们输入的链接还在使用,然后在当前在重新指向一个新的链接


永久重定向:我们输入的链接已经没有在使用了,然后在当前在重新指向一个新的链接


永久和临时的区别是:如果永久的重定向时,浏览器就不会记录我们输入的链接,而是记录我们重定向的链接,因为浏览器认为我们输入的链接不能使用了,如果是临时重定向时,浏览器会记录我们输入的链接,而不会记录我们重定向的链接,因为浏览器在状态码是302时会认为我们输入的链接还能使用。


使用场景:假设我们某个页面需要登陆才能访问,如果用户没有登陆的时候我们给他跳转到登陆页面,我们可以在代码上判断用户是不是登陆(比如验证token),如果用户没有登陆的时候,就给他重定向到登陆页面


下面,我们看下如何在代码层面上实现重定向吧,


from flask import Flask, render_template_string, abort, render_template, redirect
app=Flask(__name__)  #实例
@app.route("/user")
def hi():
    """运行代码"""
    return redirect("https://blog.csdn.net/m0_58002043?spm=1018.2226.3001.5343")   #redirect需要inport引包,这里我给他重定向我的csdn主页
if __name__=="__main__":
    app.run()


我们还可以设置重定向到其他的视图


from flask import Flask, render_template_string, abort, render_template, redirect, url_for
app=Flask(__name__)  #实例
@app.route("/user")
def a():
    """运行代码"""
    return redirect(url_for("hi"))   #redirect和url_for需要inport引包,这里我给他重定向到我下面代码创建的试图函数,括号里的hi是函数名称,而不是设置的url地址
@app.route("/h")
def hi():
    """运行代码"""
    return("我时被跳转的页面")
if __name__=="__main__":
    app.run()


同时我们可以在flaks定义是临时重定向和永久重定向


from flask import Flask, render_template_string, abort, render_template, redirect, url_for
app=Flask(__name__)  #实例
@app.route("/user")
def a():
    """运行代码"""
    return redirect(url_for("hi"),code=301)   #redirect和url_for需要inport引包,这里我给他重定向到我下面代码创建的试图函数,括号里的hi是函数名称,而不是设置的url地址
                                                #code这个函数是定义我们返回的状态码,我们设置301或着302就能设置是永久还是临时的重定向啦
@app.route("/h")
def hi():
    """运行代码"""
    return("我时被跳转的页面")
if __name__=="__main__":
    app.run()
相关文章
|
1月前
|
传感器 物联网 机器人
定义微Python
MicroPython 是一种精简高效的 Python 解释器,专为微控制器和嵌入式系统设计,支持通过 Python 代码进行快速开发和调试。它具有低资源消耗的特点,适用于物联网设备。
106 62
|
15天前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
27 9
|
29天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
29天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
29天前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
|
1月前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
1月前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
79 2
|
1月前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
70 2
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
44 1
|
1月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
构建RESTful APIs:使用Python和Flask
35 1
下一篇
DataWorks