tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument

1.tornado支持输入输出的类型

    bytes:

        tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument

    Unicode:

        tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument

    字典:

        tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument

    其他(列表,json等):

        tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument

2:缓冲区的存在,以及作用

    例如:tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument

    作用:write会先把内容放在缓冲区,正常情况下,当请求处理完成的时候会自动把缓冲区的内容输出到浏览器,但是可以调用 flush方法,这样可以直接把缓冲区的内容输出到浏览器,不用等待请求处理完成

3:返回html文件,以及如何去配置

    tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument用render去返回一个html文件

    还需要在配置文件中的applicable中配置

            template_path='templates',(想要tornado能够找到正确的html文件,需要在applicable中指定文件的位置)!!在下一个文章会重点说明

4:redirect 跳转指定的目录(重点)

    tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument配置路由(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的命令有:

tornado的输入输出,缓冲区,redirect,request,获取参数(表单内的参数)get_argument


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_argumentget_query_argument有功能局限性,所以通常使用get_argument代替,并且带源代码中,前面两个方法都是通过get_argument的功能来实现的。