您的位置:首页 > 理论基础 > 计算机网络

1.3.2 HTTP REQUEST METHODS(http 请求方式)

2016-01-08 14:09 555 查看
http 为完成不同的任务定义了一些请求方式。GET方式是没有指定方式时的默认方式。路由们默认会只匹配GET请求方式。为了使用诸如POST,PUT,DELETE或是PATCH这些请求方式,只需在route()装饰器中加一些关键字参数,或是用以下5种原生态的装饰器:get(),post(),put(),delete() 或是patch()

POST方式常见于HTML的表单提交中。这个例子展示了如何用POST完成登录操作:

from bottle import get, post, request # or route

@get('/login') # or @route('/login')
def login():
return '''
<form action="/login" method="post">
Username: <input name="username" type="text" />
Password: <input name="password" type="password" />
<input value="Login" type="submit" />
</form>
'''

@post('/login') # or @route('/login', method='POST')
def do_login():
username = request.forms.get('username')
password = request.forms.get('password')
if check_login(username, password):
return "<p>Your login information was correct.</p>"
else:
return "<p>Login failed.</p>"


在这个例子中 /login URL 连接了两个不同的回调函数,一个用来相应GET请求另一个用来相应POST请求。第一个显示了一个HTML表单。第二个回调函数接收了表单提交并且检查用户输入的用户名密码是否正确。Request.forms的使用将会在以后介绍。

特殊的提交方式:HEAD和ANY

HEAD请求跟GET请求类似,但是没有响应的主体。好处是不用下载整个文档就能检索元数据信息。Bottle自动处理这些请求通过响应的GET路由然后删去响应的主体,如果GET方式存在的话。你不必自己指定任何HEAD路由。

另外,不在标准之中的ANY方式工作时像一个低优先级回溯:只有没有指定的路由定义的时候才会匹配ANY方式。这对许多子应用的代理路由器的重定向请求很有用。【好吧,也不知道这段在讲什么】

来总结一下:HEAD 请求会回退到 GET请求的路由;所有的请求都会回退到ANY路由,如果没有其它匹配路由的话,就这么简单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息