geekdoc-python-zh/docs/askpython/flask-redirect-url.md

4.6 KiB

Flask 重定向–使用 Python Flask 设置 URL 重定向

原文:https://www.askpython.com/python-modules/flask/flask-redirect-url

在本教程中,我们将学习 flask 重定向以及如何在我们的应用程序中使用它。

为什么我们需要设置重定向?

在开始实现之前,让我们首先知道重定向实际上是什么!

所以顾名思义, redirect 函数在被调用时,基本上是将网页重定向到另一个 URL。

它是 web 应用程序的重要组成部分,也提高了应用程序的效率。

  • 举个 Twitter 的例子;如果你还没有登录,那么当你点击 Twitter 网址 (www.twitter.com)时,你会首先被重定向到登录页面。这里重定向功能发挥了作用。
  • 同样,在网上交易中,一旦付款,你会被重定向到确认页面。
  • 重定向的另一个好处是它有助于缩短 URL 例如, https://bit.ly 。在这里你输入一个短网址,然后被重定向到原来的长网址。

现在我们知道了为什么使用它,让我们进入动手部分。

实施烧瓶重定向

现在,我们将使用 Flask 重定向函数编写一个小应用程序。但是首先,我们将看到重定向函数的语法。

1。Flask 重定向属性的语法

重定向的语法:

redirect(location, code, response = None)

其中:

  • **位置:**最终网页的目标位置
  • 状态码:这些是 HTTP 重定向状态码,表示动作的输出。默认为 302
  • **响应:**启动响应时使用的响应类别。

我们现在不需要太在意最后一个。其他一些状态代码包括:

状态代码 HTTP 含义
300 多选
301 永久移动
302 找到
303 查看其他
304 未修改
305 使用代理
306 内向的; 寡言少语的; 矜持的
307 临时重定向

**注意:**在使用之前我们首先需要导入重定向属性。

from flask import redirect

2.重定向的错误处理

Flask 还有一个针对特殊重定向失败情况的 abort() 函数。

abort() 函数的语法:

abort(<error_code>)

各种错误代码如下:

错误代码 意义
400 错误的请求
401 未经证实的
403 被禁止的
404 未发现
406 不可接受
415 不支持的媒体类型
429 太多请求

Error Codes

**注意:**我们也需要首先导入这个属性。

from flask import abort

3.我们应用程序的代码

现在考虑下面的示例代码:

from flask import Flask,render_template,request,redirect

app = Flask(__name__)

@app.route('/form')
def form():
    return render_template('form.html')

@app.route('/verify', methods = ['POST', 'GET'])
def verify():
    if request.method == 'POST':
        name = request.form['name']
        return redirect(f"/user/{name}")

@app.route('/user/<name>')
def user(name):
    return f"Your name is {name}"

app.run(host='localhost', port=5000)

这里:

  • 表单视图只是向用户显示表单模板。
  • 当用户提交表单时,表单数据和请求一起被发送到验证视图。(看 form.html-动作属性
  • ****验证视图,从表单中取出姓名数据,然后将用户重定向到用户视图(以及姓名数据)。

如果你在理解语法上有任何困难,一定要看看我们的 对 Flask 文章 的介绍。

****form.html是:

<form action="/verify" method = "POST">
    <p>name <input type = "text" name = "name" /></p>
    <p><input type = "submit" value = "Submit" /></p>
</form> 

我们使用一个 Flask 表单从用户那里获取输入,然后将它重定向到一个显示回名称的网页。

在这里,顺序是:

  • ****表单功能显示表单。
  • 一旦用户提交了他的名字,验证函数从表单中取出这个名字,并将他重定向到用户函数**。**
  • ****用户函数将名称作为参数,并显示在网页上。

4。代码的实现

现在运行服务器并检查它

**Form

Form**

点击提交

**Redirect

Redirect**

就这样伙计们!!名字出现在那里。

结论

这就是本教程的伙计们!!试着找出如何在你的代码中包含中止功能作为练习。

我们将在下一篇文章中看到你们!!在那之前,快乐编码🙂