本文概述
- 标准HTTP代码
- abort()函数
HTTP状态代码是服务器对浏览器请求的响应。当我们访问网站时, 请求将发送到服务器, 然后服务器用三位数代码(HTTP状态代码)响应浏览器的请求。此状态代码也代表错误。
下面给出了使用redirect()函数的语法。
Flask.redirect(<
location>
, <
status-code>
, <
response>
)
它接受以下参数。
SN | Parameter | Description |
---|---|---|
1 | location | 这是将重定向响应的URL。 |
2 | 状态码 | 状态代码与服务器的响应一起发送到浏览器的标头。 |
3 | response | 它是项目中用于将来需求的响应实例。 |
例子
login.py
from flask import *app = Flask(__name__)@app.route('/')def home (): return render_template("home.html")@app.route('/login')def login(): return render_template("login.html");
@app.route('/validate', methods = ["POST"])def validate(): if request.method == 'POST' and request.form['pass'] == 'jtp':return redirect(url_for("success")) return redirect(url_for("login"))@app.route('/success')def success(): return "logged in successfully"if __name__ == '__main__': app.run(debug = True)
home.html
<
html>
<
head>
<
title>
home<
/title>
<
/head>
<
body>
<
h3>
Welcome to the website<
/h3>
<
a href = "http://www.srcmini.com/login">
login<
/a>
<
br>
<
/html>
login.html
<
html>
<
head>
<
title>
login<
/title>
<
/head>
<
body>
<
form method = "post" action = "http://localhost:5000/validate">
<
table>
<
tr>
<
td>
Email<
/td>
<
td>
<
input type = 'email' name = 'email'>
<
/td>
<
/tr>
<
tr>
<
td>
Password<
/td>
<
td>
<
input type = 'password' name = 'pass'>
<
/td>
<
/tr>
<
tr>
<
td>
<
input type = "submit" value = "http://www.srcmini.com/Submit">
<
/td>
<
/tr>
<
/table>
<
/form>
<
/body>
<
/html>
在上面的示例中, URL’ /’ 包含登录页面的链接, 如下图所示。
文章图片
下图所示的登录页面包含提示用户输入电子邮件和密码, 并且提交按钮将用户重定向到URL / validate。
文章图片
在这种情况下, 由于我输入了不等于’ jtp’ 的随机密码, 因此用户仅恢复到该页面(登录页面)。
但是, 仅当用户输入的密码为” jtp” 时, 用户才被重定向到URL /成功。下图显示了URL http:// localhost:5000 /成功(成功登录时生成)。
文章图片
标准HTTP代码 以下HTTP代码是标准化的。
- HTTP_300_MULTIPLE_CHOICES
- HTTP_301_MOVED_PERMANENTLY
- HTTP_302_FOUND
- HTTP_303_SEE_OTHER
- HTTP_304_NOT_MODIFIED
- HTTP_305_USE_PROXY
- HTTP_306_RESERVED
- HTTP_307_TEMPORARY_REDIRECT
abort()函数 abort()函数用于处理客户端请求中涉及错误的情况, 例如错误请求, 未经授权的访问等等。但是, 由于发生错误, 将提及错误代码。
下面给出了使用abort()函数的语法。
Flask.abort(code)
根据指定的错误, 我们可以提及以下错误代码。
- 400:不好的要求
- 401:未经授权的访问
- 403:禁止
- 404:找不到
- 406:不可接受
- 415:用于不受支持的媒体类型
- 429:请求过多
例子
from flask import *app = Flask(__name__)@app.route('/')def home (): return render_template("home.html")@app.route('/login')def login(): return render_template("login.html");
@app.route('/validate', methods = ["POST"])def validate(): if request.method == 'POST' and request.form['pass'] == 'jtp':return redirect(url_for("success")) else:abort(401)@app.route('/success')def success(): return "logged in successfully"if __name__ == '__main__': app.run(debug = True)
如果密码错误, 它将产生以下结果。
文章图片
【Python Flask重定向和错误处理】在这里, 由于用户已请求对资源进行未经授权的访问, 因此我们使用了错误代码401。我们可以根据错误情况将其更改为任何代码。
推荐阅读
- Python Flask如何使用和处理会话session()
- Python Flask邮件扩展进阶开发
- Python Flask如何使用Request对象()
- Android 最流行的吸顶效果的实现及代码
- Android Intent基本使用
- Asp.Net Core 发布异常 502.5 [The Application process failed to Start]
- Unity设置AppIcon方法
- Android初学第28天
- Android初学第29天