tornado接受参数方法get_query_argument、get_body_argument的区别

日期:2018-07-04 18:44:31 类别:  tornado

tornado接受参数方法get_query_argument、get_body_argument的区别。

1、get_query_argument(name,default,strip)

    根据URL中的name获取单个值。可以设置默认值default,当没有此name的时候,就会赋值默认值。

如果既没有name,又没有设置默认值default则会抛异常

tornado.web.MissingArgumentError异常 

strip ,如果设置为True,则会去除传过来值两边的空格。跟Trim()方法一样。

2、get_query_arguments(name,strip)

根据name,接受参数。结果为一个列表。如果没有此name,则返回空列表[]

3、get_body_argument()和get_body_arguments()

接受post请求数据。

4、get_argument()和get_arguments()是上面4个方法的合并。根据name,既可以接受get请求数据,又可以接受post请求数据。

下面看看这些方法的使用方法:

新建getData.py文件如下:

#coding:utf-8

import tornado.web

import tornado.ioloop

import tornado.httpserver

import tornado.options

from tornado.options import options

tornado.options.define("port",default=8000,type=int,help="tornado start port 8000")

class GetData(tornado.web.RequestHandler):

    def post(self):

        query_arg = self.get_query_argument("a")

        query_args =self.get_query_arguments("a")

        body_arg = self.get_body_argument("b",strip=True)

        body_args = self.get_body_arguments("b")

        arg=self.get_argument("c",strip=True)

        args=self.get_arguments("c")

        res ="query_arg:%s<br>"%query_arg

        res +="query_args:%s<br>"%query_args

        res +="body_arg:%s<br>"%body_arg

        res +="body_args:%s<br>"%body_args

        res += "arg:%s<br>"%arg

        res += "args:%s<br>"%args

        self.write(res)

if __name__ == "__main__":

    tornado.options.parse_command_line()

    app=tornado.web.Application([(r"/",GetData),]

                                ,debug=True)

    http_server = tornado.httpserver.HTTPServer(app)

    http_server.listen(options.port)

    tornado.ioloop.IOLoop.current().start()


然后打开postman,发送post请求如下图,查看返回结果

tornado接受参数.png