tornado 中读取访问参数(get和post方式)

tornado 中读取访问参数

1、get方式
  • arg = self.get_query_argument(‘keyword’,’’)
    • 获取get请求方式的keyword对应的值,如果不存在,则为空字符串
  • args = self.get_query_arguments(‘keyword’)
    • 返回一个列表,获取get请求方式的keyword对应的一组值,如果不存在,则为空列表
import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler, url

# 处理响应用户的请求
# url : 127.0.0.1:8000/?wd=111&wd=222
class IndexHandler(RequestHandler):
    def get(self):
        arg = self.get_query_argument('wd', '') # 如果没有参数时,返回空字符串
        print(arg)   # 222,获得最新的一个参数值
        args = self.get_query_arguments('wd') # 如果没有参数时,程序正常,返回一个空列表
        print(args)  # ['111', '222']

# 端口名为port,类型为整型,默认值为10000,不是一组值
define('port', type=int, default=10000, multiple=False)

# 从指定的配置文件中读取port,从当前文件的路径下寻找config文件
parse_config_file('config')

url_list = [('/', IndexHandler)]

app = Application(url_list)
server = HTTPServer(app)
server.listen(options.port)
IOLoop.current().start()
2、post方式
  • arg = self.get_body_argument(‘keyword’, ‘’)
    • 获取post请求方式的keyword对应的值,如果不存在,则为空字符串
  • args = self.get_body_arguments(‘keyword’)
    • 返回一个列表,获取post请求方式的keyword对应的一组值,如果不存在,则为空列表
import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler, url

# 处理响应用户的请求
# url : 127.0.0.1:8000/
class IndexHandler(RequestHandler):
    def post(self):
    	arg = self.get_body_argument('wd', '')
        print(arg) # 获得wd参数最新的值

        args = self.get_body_arguments('wd')
        print(args) # 获得wd参数值的列表

# 端口名为port,类型为整型,默认值为10000,不是一组值
define('port', type=int, default=10000, multiple=False)

# 从指定的配置文件中读取port,从当前文件的路径下寻找config文件
parse_config_file('config')

url_list = [('/', IndexHandler)]

app = Application(url_list)
server = HTTPServer(app)
server.listen(options.port)
IOLoop.current().start()
  • 使用postman发送post的请求
    在这里插入图片描述
3、get__argument() 和 get_arguments()
  • get__argument() 相当于get_query_argument() + get_body_argument()
    • 只取get请求和post 请求中最后一个参数的值,即最新的值
  • get__arguments() 相当于get_query_arguments() + get_body_arguments()
    • 返回一个列表,取get请求和post 请求中全部参数的值,如果没有返回一个空列表
import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler, url

# url: 127.0.0.1/?wd=123456
# post请求参数为{'wd':'222'}
class IndexHandler(RequestHandler):
    def get(self):
        self.write('index page')
        arg2 = self.get_argument('wd','')  
        print(arg2)  # 222

        args2 = self.get_arguments('wd')
        print(args2)  # ['123456', '222']

    def post(self):
        self.write('post mothod')

define('port', type=int, default=10000, multiple=False)
parse_config_file('config')

url_list = [('/', IndexHandler)]

app = Application(url_list)
server = HTTPServer(app)
server.listen(options.port)
IOLoop.current().start()
4、获取请求头中的参数
  • head_contents= self.request.headers
import tornado
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options, parse_config_file
from tornado.web import Application, RequestHandler, url

# url: 127.0.0.1/?wd=123456
# post请求参数为{'wd':'222'}
class IndexHandler(RequestHandler):
    def get(self):
		head_contents= self.request.headers
        print(head_contents)
		    # Content-Type: application/x-www-form-urlencoded
			# Connection: keep-alive
			# Accept-Encoding: gzip, deflate
			# Selfheader: CSDN  (自定义的header)
			# Content-Length: 6
			# Cache-Control: no-cache
			# User-Agent: PostmanRuntime/7.19.0
			# Postman-Token: 5c4e1f5c-acc5-4769-ab0d-f20a62d4f8aa
			# Accept: */*
			# Host: 127.0.0.1:8000
			
		ct = head_contents.get('Content-Type','')
        sh = head_contents.get('selfheader', '')
        print(ct)  # application/x-www-form-urlencoded
        print(sh)  # CSDN 

    def post(self):
        self.write('post mothod')

define('port', type=int, default=10000, multiple=False)
parse_config_file('config')

url_list = [('/', IndexHandler)]

app = Application(url_list)
server = HTTPServer(app)
server.listen(options.port)
IOLoop.current().start()
发布了75 篇原创文章 · 获赞 87 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43883022/article/details/102832114
今日推荐