繁体   English   中英

未找到龙卷风邮政方法

Tornado Post Method Not Found

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正试图在Tornado Web服务器上发布一个表单,但每当我点击提交时生成以下错误

405 Method Not Allowed

这是表格

<form method="post">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

我已经尝试将主请求处理程序上的“get”方法更改为“post”,但它不起作用。 唯一有效的方法是GET,

class MainHandler(BaseHandler):
    """
    Main request handler for the root path and for chat rooms.
    """

    @tornado.web.asynchronous
    def get(self, room=None):

有什么建议?

3 个回复

唯一有效的方法是GET因为您在处理程序子类上定义的唯一方法是get() 要处理POST ,请定义post()方法,而不是(或除了) get()

我下载了示例项目并自己运行。 我想我已经取得了一些进展。

首先,原始MainHandler无法处理POST请求。 根据代码,它处理像/room/1/room/2这样的请求。

其次,我在想你正试图模仿登录表单。 但是登录表单使用GET方法和/login作为端点:

<form class="form-inline" action="/login" method="get">

我猜你也把你的表单放在index.html中,其URL实际上是/login (如果没有登录)或/room/X (登录)。 所以你可能正在登陆LoginHandler。

第三,当我在MainHandler中添加post方法并向/room/1发送POST请求时, 它实际上正在工作并触发500内部错误。

我使用curl来测试几个案例。 如果您尝试在/上向MainHandler发送POST请求,它甚至不响应! 因为,如前所述,get被定义为get(self,room = None)。 它只接受/room/X

如果您在/room/login上尝试,则响应将为405 Method Not Allowed

如果你想为/login提供POST,最简单的方法是在LoginHandler中添加POST,如下所示:

@tornado.web.asynchronous
def post(self):
    self.get()

# or this
post = get

在那个漫长的聊天窗口之后,我认为最好的方法是通过cookie传输数据。

这是一个教程: http//www.w3schools.com/js/js_cookies.asp

另一种资源是将您的数据分解为多个部分。

一种方法是向端点发出请求,为您分配唯一ID。 然后以以下形式发送一系列请求: ?id=XXX&page=1&data=...在关闭之前使用?id=XXX&total_pages=27 ,此时您将在服务器上组装不同的部分。

2 如何在Tornado中使用POST方法?

我正在尝试使用Tornado启动服务器并向其发布字符串。 我已经找到了很多关于如何在处理程序类中编写post方法的示例,但没有关于如何编写post请求的示例。 我当前的代码确实导致post方法执行,但get_argument没有获取数据 - 它只是每次都打印默认的“No data recei ...

5 如何将JSON作为python tornado“post”方法的输入

我正在尝试使用龙卷风做一个简单的get和post方法。 龙卷风框架相当新鲜。 对于帖子,我想以json作为输入,使用该输入提供给另一个我必须执行另一部分代码的函数。 但是,即使使用简单的self.write(),我也无法使龙卷风post方法工作。 对于我的get方法,我正在从SQL数 ...

6 找不到发布方法请求

我的代码现在有问题,每当我尝试访问它时,似乎找不到指定的路由。 路线: 视图: 控制器: 在提交结束之前,我想重定向到我的编辑页面并显示我对上一个表单所做的更改。 这是我单击提交时遇到的错误。 ...

7 龙卷风POST请求不起作用

我从Tornado服务器文档中获取了以下代码,并尝试对其进行尝试,但我不断收到错误消息 对象没有属性“ get_body_argument” 任何帮助表示赞赏。 ...

8 发布到Tornado服务器

我试图发布到我的Tornado Web服务器,但一直收到405错误。 不确定出了什么问题。 我是python的新手,但我一直在寻找这个约一个月,最后决定试一试。 龙卷风Web服务器: HTML: ...

9 龙卷风中的POST请求

当我发送发布请求时,龙卷风无法从中获取request.body。 我要授权来自服务文档的内容: POST https://www.wrike.com/oauth2/token参数:client_id = client_secret = grant_type = authorizati ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM