tornado 里,如果写 API 的话。。。

2014-11-03 05:54:04 +08:00
 p8p8
我需要写一个用户注册的API接口,这个接口没有GET方式,只支持POST,

例如:

class Signin(BaseHandler):

def get(self):
#这里跳转至post()么?
post()

def post(self):


还是怎么写才合理啊?
8111 次点击
所在节点    Tornado
5 条回复
banbanchs
2014-11-03 07:51:54 +08:00
你不要重写get方法就行了,别人用GET访问这个接口会自动raise HTTPError(405)

https://github.com/tornadoweb/tornado/blob/master/tornado/web.py#L208
shadowind
2014-11-03 08:10:45 +08:00
不写get,只写post就可以了~~
Shared
2014-11-03 08:34:56 +08:00
你没明白过弯来,当用 POST 方法访问指定 URL 的时候,router 自然会调用该方法里的 post()
与 get() 压根不产生任何交集
JoeShu
2014-11-03 08:38:02 +08:00
看下basehandler的代码就很明了了,get默认是raise异常的
shajiquan
2014-11-05 17:55:01 +08:00
HTTP Method 有很多种:GET / POST / PUT / DELETE / HEAD / OPTION。

Tornado 支持以上这些方法。在你的 handler class 里,如果你不写那个 def get/post/put/delete 的话,那么这个 handler 就没有实现这种请求方式。

当 client 请求一个没有实现的方法时,tornado 默认会返回 HTTP 405 Method not allowed 错误,HTTP 级别的。

你在浏览器里打开一个网址,是请求的这个 handler 的 get 方法,要发起 post/put/delete 等方法时,需要特别处理的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/143513

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX