烧瓶重定向后返回自定义http代码

Deekshith阿南德

那里是我的新手。场景:提交表单后,我试图重定向到某个路由。所以我为此使用了烧瓶重定向以及代码参数。

@topics_bp.route('/create_topic/',methods =['GET','POST'] )
def create_topic():
    if request.method == 'GET':
        #send the form for create topic!
        formData = TopicForm()
        return render_template('create-topic.html',form = formData)
    if request.method == 'POST':
        # check the post method and redirect
        
        return redirect(url_for('topic.topics'),code=201)

基本上,我想为创建的记录返回HTTP代码201,然后重定向到预期的路由。但是,如果我这样做,它只会返回一个重定向页面。每次需要手动单击时。重定向页面

是否有任何解决方法可返回201代码并自动重定向?提前致谢!

马丁·彼得斯(Martijn Pieters)

我想为创建的记录返回HTTP代码201,然后重定向到预期的路由。

这不是您可以使用HTTP执行的操作。重定向本身就是特定的HTTP 30x状态代码

在HTTP中,重定向是由服务器发送对请求的特殊重定向响应触发的重定向响应的状态码以开头3Location标头中包含要重定向到的URL。

您返回201状态代码,或者返回HTTP重定向状态代码之一。你们不能两者都做。

flask.redirect()函数生成一个有效的30x响应(带有必需的Location标头),并且该函数文档说明了支持哪些重定向状态代码:

支持的代码为301、302、303、305、307和308。不支持300,因为它不是真正的重定向;而由于它是带定义的If-Modified-Since标头的请求的响应,因此不支持304。

但是,该函数不会强制执行此操作;状态代码未通过验证。

您需要在此处区分浏览器和其他客户端。201创建的响应通常是您从REST API返回给客户端的东西,该客户端期望在可编程级别进行简单的JSON或XML交互。另一方面,重定向通常在表示层前端中使用。

如果您要编码基于HTML的前端,则只需返回重定向。人类不读取响应代码,而是读取呈现的HTML页面。他们不在乎,也不需要知道用于使浏览器执行正确操作的确切HTTP代码。鉴于您的路线还包含一个表格,几乎可以肯定,您将为人类而不是为程序化客户建立一个站点。

如果要构建REST API,则返回201响应,并记录API客户端必须基于Location您包含标头或响应主体中的内容进行新请求但是,HTML浏览器不会跟随Location201响应标头。

然后redirect(),即使允许您将其201用作状态代码,我也不会使用该功能,因为它始终会生成一个(简单的)HTML正文,其中包含您在浏览器中看到的有关自动重定向的文本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么laravel 6 auth使用自定义防护重定向后返回false?

来自分类Dev

从ActionFilterAttribute返回自定义HTTP代码

来自分类Dev

重定向后烧瓶请求为空

来自分类Dev

重定向后烧瓶变量不会转移

来自分类Dev

nginx默认重定向和自定义重定向

来自分类Dev

nginx默认重定向和自定义重定向

来自分类Dev

htaccess 301自定义重定向

来自分类Dev

在自定义AsyncControllerActionInvoker中重定向

来自分类Dev

自定义.htaccess移动重定向

来自分类Dev

从自定义模板重定向WordPress

来自分类Dev

Symfony2 phpunit功能测试自定义用户身份验证在重定向后失败(与会话相关)

来自分类Dev

如果设置了自定义会话路径,重定向后,Yii Flash消息将不起作用

来自分类Dev

Django request.user 在重定向后变为匿名。使用自定义用户模型和身份验证

来自分类Dev

自定义HTTP响应代码以及JSON返回

来自分类Dev

重定向返回错误并在自定义请求类中输入:Laravel 5

来自分类Dev

Joomla:如果用户未登录,则重定向到登录页面,然后返回自定义组件

来自分类Dev

返回 HttpNot Found 不重定向到自定义错误页面

来自分类Dev

.htaccess重定向代码将重定向到未找到的自定义404,而不是将www重定向到非www版本

来自分类Dev

在具有自定义域的OpenShift中从HTTPS重定向到HTTP

来自分类Dev

htaccess重定向https和http和自定义网址

来自分类Dev

使用自定义NSURLProtocol和HTTP代理处理重定向

来自分类Dev

自定义wordpress HTTP重定向到HTTPS中断网站

来自分类Dev

Nginx:将自定义域http请求重定向到https

来自分类Dev

从POST方法重定向后出现烧瓶错误

来自分类Dev

重定向后烧瓶闪光灯不工作

来自分类Dev

从POST方法重定向后出现烧瓶错误

来自分类Dev

从自定义Adminhtml控制器重定向

来自分类Dev

成功登录后Shibboleth自定义重定向

来自分类Dev

Grails安全插件自定义重定向

Related 相关文章

  1. 1

    为什么laravel 6 auth使用自定义防护重定向后返回false?

  2. 2

    从ActionFilterAttribute返回自定义HTTP代码

  3. 3

    重定向后烧瓶请求为空

  4. 4

    重定向后烧瓶变量不会转移

  5. 5

    nginx默认重定向和自定义重定向

  6. 6

    nginx默认重定向和自定义重定向

  7. 7

    htaccess 301自定义重定向

  8. 8

    在自定义AsyncControllerActionInvoker中重定向

  9. 9

    自定义.htaccess移动重定向

  10. 10

    从自定义模板重定向WordPress

  11. 11

    Symfony2 phpunit功能测试自定义用户身份验证在重定向后失败(与会话相关)

  12. 12

    如果设置了自定义会话路径,重定向后,Yii Flash消息将不起作用

  13. 13

    Django request.user 在重定向后变为匿名。使用自定义用户模型和身份验证

  14. 14

    自定义HTTP响应代码以及JSON返回

  15. 15

    重定向返回错误并在自定义请求类中输入:Laravel 5

  16. 16

    Joomla:如果用户未登录,则重定向到登录页面,然后返回自定义组件

  17. 17

    返回 HttpNot Found 不重定向到自定义错误页面

  18. 18

    .htaccess重定向代码将重定向到未找到的自定义404,而不是将www重定向到非www版本

  19. 19

    在具有自定义域的OpenShift中从HTTPS重定向到HTTP

  20. 20

    htaccess重定向https和http和自定义网址

  21. 21

    使用自定义NSURLProtocol和HTTP代理处理重定向

  22. 22

    自定义wordpress HTTP重定向到HTTPS中断网站

  23. 23

    Nginx:将自定义域http请求重定向到https

  24. 24

    从POST方法重定向后出现烧瓶错误

  25. 25

    重定向后烧瓶闪光灯不工作

  26. 26

    从POST方法重定向后出现烧瓶错误

  27. 27

    从自定义Adminhtml控制器重定向

  28. 28

    成功登录后Shibboleth自定义重定向

  29. 29

    Grails安全插件自定义重定向

热门标签

归档