FastAPI重定向给出方法不允许的错误

Fastapi渲染页面模板:

设置一个列表,放置待处理事项:

template = Jinja2Templates("pages")todos = ["写日记", "看电影", "玩游戏"]

设置循环体,对列表进行展示

<body><h1>代办事项</h1>{% for todo in todos %}<p>{{ todo }}</p>{% endfor %}
</body>

设置待办事项输入框

<!-- 待办事项输入框 --><div><!-- 将信息放入form表单中,action表示数据传输的位置 --><form action="/todo" method="post"><input name="todo" placeholder="请添加待办事项..."><input type="submit" value="添加"></form></div>

在fastapi中处理POST方法时出现问题:

POST请求设置部分:

@app.post("/todo")
def todo(todo=Form(None)):# 处理用户发送过来的 todolist 数据todos.insert(0, todo)return RedirectResponse("/")

在这里插入图片描述
在这里插入图片描述

在这里显示为POST请求不被允许

解决方案:

共尝试三种方法,只有一种有效:

第一种方法:设置methods参数

app.add_middleware(CORSMiddleware,allow_methods=["POST", "GET"])

第二种方法:设置api_route对应的值

@app.api_route("/todo", methods=("POST", "GET", "PUT"))
def todo(todo=Form(None)):# 处理用户发送过来的 todolist 数据todos.insert(0, todo)return RedirectResponse("/")

第三种:将status_code的值修改为302

@app.post("/todo")
def todo(todo=Form(None)):# 处理用户发送过来的 todolist 数据todos.insert(0, todo)return RedirectResponse("/", status_code=302)

目前第三种方法成功

成品:

在这里插入图片描述
添加后
在这里插入图片描述

这是因为在重定向过程中向"/todo“发出了POST请求,从而导致了错误。

在FastAPI中,starlette响应的默认代码是307,它在重定向期间保留了方法,因此产生了post请求。可以通过在返回响应之前添加response.status_code = 302解决了这个问题。

但是在另外两种方法进行试验时出现了一个问题
点击添加时出现错误,出现方法不允许
但是点击返回操作至还未点击添加的页面时,进行刷新会发现,成功的添加上去了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述这个时候已经成功的添加进去了
完整代码

import uvicorn
from fastapi import FastAPI, Request, Form
from fastapi.responses import RedirectResponse
from fastapi.templating import Jinja2Templatesapp = FastAPI()
template = Jinja2Templates("pages")todos = ["写日记", "看电影", "玩游戏"]@app.get("/")
def index(req: Request):return template.TemplateResponse("index.html",context={"request": req,"todos": todos})@app.api_route("/todo", methods=("POST", "GET", "PUT"))
def todo(todo=Form(None)):# 处理用户发送过来的 todolist 数据todos.insert(0, todo)return RedirectResponse("/")if __name__ == '__main__':uvicorn.run(app, host="127.0.0.1", port=8000)

参考资料:https://cloud.tencent.com/developer/ask/sof/817013
有友友知道这是因为什么吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6579.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遇到的一个重定向次数过多的问题

如图,次数过多一般就是死循环 当时虽然考虑过这一点 但只是在代码上做过考量 并没有想到Global会进来好多次 后来想到了 因为地址会不断刷新. 这点挺重要的,也是官网上搜了一些关于重定向的含义和使用以及区别等等才想到的. 转载于:https://www.cnblogs.com/sunshine-wy/p/7194…

访问后台出现重定向次数过多该怎么办?-建站需知

背景 在我安装使用https协议之后&#xff0c;打开后台才出现的此类情况&#xff0c;想到了几种可能的原因及解决方法&#xff0c;分享出来帮助遇到同样问题的你。 什么是重定向 重定向是一种特殊的页面&#xff0c;使得人们在输入该名称进入条目或者点击指向该名称的内部链接…

两条命令搞定 ChatGPT API 的调用问题

自2022年11月30日 OpenAI 发布 ChatGPT 以来&#xff0c;虽然时有唱衰的声音出现&#xff0c;但在OpenAI不断推陈出新&#xff0c;陆续发布了OpenAPI、GPT-4、ChatGPT Plugins之后&#xff0c;似乎让大家看到了一个聊天机器人往操作系统入口进军的升纬之路。 ChatGPT能被认为是…

xxxxx.com 将您重定向次数过多

** 重定向次数过多 ** 在C#的学习中再配置了iis站点&#xff0c;引入项目之后&#xff0c;在浏览器输入域名显示该错误&#xff0c; 首先根据提示&#xff0c;清楚缓存之后仍然没有用&#xff0c;可能是自己的Login与Main冲突&#xff0c;形成不断重定向的死循环&#xff0c;…

将您的重定向次数过多

在使用spring security框架实现安全访问控制时出现异常&#xff0c;如图&#xff1a; 这个问题的根本原因时网页跳转中出现了死循环&#xff0c;在登录项我们需要设置security“none”&#xff0c;如&#xff1a; <http pattern"/login.html" securyty"non…

ChatGPT专业应用:生成产品分析

正文共 903 字&#xff0c;阅读大约需要 5 分钟 产品经理必备技巧&#xff0c;您将在5分钟后获得以下超能力&#xff1a; 生成产品分析 Beezy评级 &#xff1a;A级 *经过寻找和一段时间的学习&#xff0c;一部分人能掌握。主要提升效率并增强自身技能。 推荐人 | Kim 编辑者 …

ChatGPT 的背后:OpenAI 创始人Sam Altman如何用微软的数十亿美元打造了全球最热门技术...

内容来自 MoPaaS 编者按&#xff1a; ChatGPT产生的影响还在继续&#xff0c;ChatGPT 以及其创造者 OpenAI 背后的故事却鲜为人知。OpenAI 是怎样偏离其初心坚持商业化&#xff1f;凭什么 Altman可以让微软早期押注他们? OpenAI原来的安全团队为什么分家与他们分庭抗争&#x…

李开复加入“中文版 ChatGPT”大战:宣布筹组新公司,招募世界级人才!

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 刚过去的一周&#xff0c;对于技术圈而言&#xff0c;实在是太“热闹”了&#xff1a; OpenAI 发布史上最强模型 GPT-4&#xff0c;谷歌开放大语言模型 PaLM API&#xff0c;百度「文心一言」正式亮相…

ChatGPT让Nature一周发两文探讨:学术圈使用不可避免,是时候明确使用规范

明敏 发自 凹非寺量子位 | 公众号 QbitAI 在科技巨头为了ChatGPT大打出手的另一边&#xff0c;学术圈对于ChatGPT的关注也在升高。 一周时间内&#xff0c;Nature连发两篇文章探讨ChatGPT及生成式AI。 毕竟ChatGPT最早还是在学术圈内掀起风浪&#xff0c;先后有学者拿它写论文摘…

chatgpt赋能python:用Python写优质SEO文章的方法

用Python写优质SEO文章的方法 Python语言是当前广泛应用于程序开发的最流行的高级编程语言之一。Python能够通过结构化和面向对象编程的方式&#xff0c;帮助开发者快速地开发各种类型的应用程序。但是&#xff0c;Python的使用不仅限于程序开发。最近&#xff0c;Python在SEO…

ChatGPT专业应用:撰写英文SEO文章

正文共 561 字&#xff0c;阅读大约需要 2 分钟 品牌营销/活动运营必备技巧&#xff0c;您将在2分钟后获得以下超能力&#xff1a; 快速生成英文SEO文章 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | Alice 编辑者 |…

如何用Chatgpt来做SEO?分享3个技巧

目录 一、使用prompt(引导词)一键生成关键词 &#xff08;一&#xff09;案例&#xff1a;关键词调研 &#xff08;二&#xff09;案例&#xff1a;翻译关键词列表 &#xff08;三&#xff09;使用chatgpt进行关键词调研的局限性 1.真实性待验证 2.时效性有限 二、在Goo…

ChatGPT会颠覆SEO内容创作吗

近几年 AI 的发展日新月异。除了搜索算法本身大规模应用人工智能&#xff0c;我也一直关注着 AI 用于写作的进展。 上篇关于 Google 有用内容更新的帖子还在说&#xff0c;高质量内容创作是 SEO 最难的事之一&#xff0c;对某些网站来说&#xff0c;如果能有工具帮助&#xff…

「译文」用ChatGPT助力SEO工作

大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 那些使用ChatGPT的先进人士&#xff0c;也没还能完全掌握它内容生成的能力&#xff0c;特别是像博客那样的长文写作能力。 现在&#xff0c;跟大家介绍 一下SEO优…

ChatGPT 辅助生成PPT

前言 介绍 ChatGPT 与 MindShow 结合高效生成 PPT。 文章目录 前言一、准备工具二、使用步骤1. 内容生成2. 制作 PPT三、小节一、准备工具 ChatGPT:MindShow:MindShow网站 MindShow 内置了丰富的模板、图表和设计元素。具有自动排版功能,可根据输入内容智能调整布局。二、使…

让chatgpt自己生成提示词的骚操作

欢迎关注微信公众号&#xff1a;小生听雨园 &#xff0c;获取最新消息&#xff0c;欢迎您的到来。 亲爱的读者您好&#xff0c;需要注意一下嗷: ChatGPT是一个自然语言处理模型&#xff0c;他不是翻译工具&#xff0c;要翻译的话可以使用deepl&#xff0c;这个的效果会更好&am…

【ChatGPT】ChatGPT指令生成器 - 知识点目录

【ChatGPT指令生成器】 使用方法&#xff1a;点击模板开始编辑&#xff0c;根据具体情境替换占位符[_XXXXXX_]中的内容 1. 程序开发

【LLM】离线部署ChatGLM-6B模型

目录 前言 准备环境 打包环境 下载/上传模型 部署模型 前言 甲方出手&#xff0c;天下我有&#x1f929;。圆梦了圆梦了~一直想整一台GPU服务器尝尝鲜&#xff0c;奈何钱包空空&#xff0c;虽然有可以在CPU上部署的方案&#xff0c;但效果却不是让人那么满意&#xff0c…

ChatGPT-Next-Web:Vercel 和 Cloudflare 的快速部署

本文介绍了如何将 ChatGPT-Next-Web 部署到 Vercel 并在 Cloudflare 上加速&#xff0c;使用 SSL、CDN 和缓存等功能。 ChatGPT Next Web是一个免费的一键部署私人ChatGPT网页应用程序&#xff0c;具有精心设计的UI、响应式设计和支持深色、浅色两种主题等功能。它还提供了海量…

使用 ONLYOFFICE 宏借助 ChatGPT 生成文章

AI 技术在过去几年中得到了显著提升&#xff0c;同时也成为了我们日常生活中必不可少的一部分。现在&#xff0c;我们会将这种高科技功能纳入到文档撰写过程。在本文中&#xff0c;我们将展示如何构建一个宏来使用 ChatGPT API 生成文章。 关于 ChatGPT ChatGPT 是由 OpenAI 开…