Tornado获取参数
本文最后更新于1788天前,其中的信息可能已经有所发展或是发生改变。

概述

1. get_argument(name,default=_ARG_DEFAULT,strip=True)

2. get_arguments(name,strip=True)

3. get_body_argument(name,default=_ARG_DEFAULT,strip=True)

4. get_body_arguments(name,strip=True)

5. get_query_argument(name,default=_ARG_DEFAULT,strip=True)

6. get_query_arguments(name,strip=True):

简介

一  RequestHandler.get_argument()和RequestHandler.get_arguments():

实际上是通过RequestHandler._get_argument()和RequestHandler._get_arguments()对HTTPServerRequest.arguments进行一些去空格,编码,默认值等操作。HTTPServerRequest.arguments包括GET和POST请求的所有参数。

get_argument()实际上是获取的get_arguments()[-1]。

class HTTPServerRequest(object):

attribute:arguments

GET/POST arguments are available in the arguments property, which

maps arguments names to lists of values (to support multiple values

for individual names). Names are of type `str`, while arguments

are byte strings.  Note that this is different from

`.RequestHandler.get_argument`, which returns argument values as

unicode strings.

二  RequestHandler.get_query_argument()和RequestHandler.get_query_arguments():

实际上是通过RequestHandler._get_argument()和RequestHandler._get_arguments()对HTTPServerRequest.query_arguments进行一些去空格,编码,默认值等操作。HTTPServerRequest.query_arguments只包括请求的url上所带的参数。

class HTTPServerRequest(object):

attribute: query_arguments

Same format as ``arguments``, but contains only arguments extracted

from the query string.

二  RequestHandler.get_body_argument()和RequestHandler.get_body_arguments():

HTTPServerRequest.body_arguments只包括请求body里所带的参数。

class HTTPServerRequest(object):

attribute: body_arguments

Same format as ``arguments``, but contains only arguments extracted

from the request body.

实例

1.  获取url后的参数

url = '127.0.0.1:8080/test?search_title=测试标题1&search_title=测试标题2&search_name=测试名称&test_body=测试'

若存在多个重复的参数名,利用get_argument(),get_query_argument只能获取最后一个,即'测试标题2'。利用get_arguments(),get_query_arguments()能获得一个unicode编码的list,得到所有相同参数名的参数。

get_body_argument(),get_body_arguments()不能获取url中的参数。

search_title =self.get_argument('search_title','')  # 测试标题2

search_titles = self.get_arguments('search_title', [])  # unicode编码的list, 实际为[测试标题1,测试标题2]

search_name =self.get_query_argument('search_name','')  # 测试名称

search_names =self.get_query_arguments('search_name',[])  # unicode编码的list, 实际为[测试名称]

test_body_argument = self.get_body_argument('test_body','')  # ''

2. form表单序列化后的数据。

表单中多个同名<input name='step_title' />,利用get_arguments()和get_body_arguments()获取list。

flow_title =self.get_argument('flow_title','')  # 测试流程

test_flow_title=self.get_body_argument('flow_title','')  # 测试流程

step_titles =self.get_arguments('step_title',[])  # list

tesst_step_titles=self.get_body_arguments('step_title',[])  # list

3.  js相关

var data = {'test_arg', 'v1'}  // 同个'test_arg'获取

var list_data = {'test_arg', ['v1', 'v2']} // 通过'test_list[]'获取

test_arg=self.get_argument('test_arg', '')

test_args=self.get_arguments('test_arg[]', '')  # 获取到list

参考

1.  tornado/web.py

2.  tornado/httputil.py

3.  tornado/escape.py

点击数:141

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇