tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument
1.tornado支持输入输出的类型
bytes:
Unicode:
字典:
其他(列表,json等):
2:缓冲区的存在,以及作用
例如:
作用:write会先把内容放在缓冲区,正常情况下,当请求处理完成的时候会自动把缓冲区的内容输出到浏览器,但是可以调用 flush方法,这样可以直接把缓冲区的内容输出到浏览器,不用等待请求处理完成
3:返回html文件,以及如何去配置
用render去返回一个html文件
还需要在配置文件中的applicable中配置
template_path='templates',(想要tornado能够找到正确的html文件,需要在applicable中指定文件的位置)!!在下一个文章会重点说明
4:redirect 跳转指定的目录(重点)
配置路由(r'/rec',RecHandler)
5:self.request请求
classReqHandler(tornado.web.RequestHandler):
def get(self):
self.write(self.request.remote_ip)
print(self.request.remote_ip)
print(self.request.full_url())
print(self.request.request_time())
继承类 tornado.web.RequestHandler之后 ,
才可以直接调用 self.request 来获取客户端请求信息
request的命令有:
6、body输入
当from表单填写数据后,将数据提交到指定路径,然后由该路径下的python执行并返回执行结果,运行代码如下所示:
HTML代码:
<div>
<form action="/post" method="post"> # 数据提交路径和提交的请求模式
<p>name: <input type="text" name="name"></p>
<p>age: <input type="text" name="age"></p>
<p><input type="submit" value="提交"></p>
</form>
</div>
PY代码:
class PostHandler(tornado.web.RequestHandler):
def post(self):
name = self.get_argument('name','') # 获取在form表中name对应的值
age = self.get_argument('age','')
self.write('name:{}'.format(name))
self.write('age:{}'.format(age))
2.2、URL输入
前面也说过,在tornado.web.Application
路由里面,路径其实是正则表达式,所以通过()
捕获匹配的内容,然后传递给后台。代码如下:
class UrlHandler(tornado.web.RequestHandler):
def get(self,urlinput): # urlinputi 接收正则表达式捕获的内容
self.write(urlinput)
def app():
return tornado.web.Application(
handlers=[
(r'/url/(.+)',UrlHandler), # 捕获匹配的内容,传递给对应的内容模块
])
2.3、获取传参
获取所有参数
get_argument
get_arguments
获取查询字符串中参数
get_query_argument
get_query_arguments
获取 body 中的参数
get_body_argument
get_body_arguments
get_body_argument
和get_query_argument
有功能局限性,所以通常使用get_argument
代替,并且带源代码中,前面两个方法都是通过get_argument
的功能来实现的。