torando 入门2

获取请求头中的内容
head = self.request.headers

Content-Type = head.get('Content-Type',None)
.............

获取请求体中的内容
bodybyte = self.request.body
文本处理
bodystr = bodybyte.decode('utf8')
json处理
jsonobj = json.loads(bodystr)
data = jsonobj.get('name')

self.request内容
HTTPServerRequest(protocol='http',
host='127.0.0.1:9999',
method='GET',
uri='/python',
version='HTTP/1.1',
remote_ip='127.0.0.1',
headers={'Host': '127.0.0.1:9999',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Referer': 'http://127.0.0.1:9999/',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'If-None-Match': '"54f9ccd3925e59bb73ae8b4103c8569b750cedb1"'
})

method
HTTP请求方法,例如“GET”或“POST”

uri
请求的uri。

path
的路径部分 uri

query
查询部分 uri

version
请求中指定的HTTP版本,例如“HTTP / 1.1”

headers
HTTPHeaders请求标头的类似字典的对象。行为类似于不区分大小写的字典,其中包含重复标题的其他方法。

body
请求主体(如果存在)作为字节字符串。

remote_ip
客户端的IP地址为字符串。如果HTTPServer.xheaders设置,将传递由X-Real-Ip或X-Forwarded-For标头中的负载平衡器提供的真实IP地址。

版本3.1中已更改:X-Forwarded-For现在支持列表格式。

protocol
使用的协议,“http”或“https”。如果HTTPServer.xheaders 已设置,将通过负载均衡器传递协议(如果通过X-Scheme标头报告)。

host
请求的主机名,通常取自Host标头。

arguments
参数属性中提供了GET / POST参数,它将参数名称映射到值列表(以支持单个名称的多个值)。名称是类型str,而参数是字节字符串。请注意,这与RequestHandler.get_argument将参数值作为unicode字符串返回不同 。

query_arguments
格式相同arguments,但仅包含从查询字符串中提取的参数。

版本3.2中的新功能。

body_arguments
格式相同arguments,但仅包含从请求正文中提取的参数。

版本3.2中的新功能。

files
文件上传可在files属性中找到,该属性将文件名映射到列表中HTTPFile。

connection
HTTP请求附加到单个HTTP连接,可以通过“connection”属性访问。由于连接通常在HTTP / 1.1中保持打开,因此可以在单个连接上顺序处理多个请求。

版本4.0中已更改:已移至tornado.httpserver.HTTPRequest。

supports_http_1_1()[来源]
如果此请求支持HTTP / 1.1语义,则返回True。

从4.0版开始不推荐使用:应用程序不太可能需要这些信息HTTPConnection。如果您仍然需要它,请version直接访问该属性。此方法将在Tornado 6.0中删除。

cookies
Cookie.Morsel对象的字典。

finish() 当请求方法(get方法或post方法)执行完毕后把self.write()方法写入缓存区的
内容推送到服务器发送给浏览器,是已经写好的内置方法
finish()有特定功能,不建议重写

class IndexHandler(RequestHandler):
def initialize(self,*args,**kwargs): #在请求方法调用之前自动调用,
pass

def get(self):
self.write('Hello World')
self.write('Hello World')
self.write('Hello World')
def post(self):
pass

def on_finish(self:) #自动在请求方法之后,finish方法之前调用
pass #建议需求写在这个方法里

def finish(self,chunk=None):
pass


设置响应

def get(self):
self.write('Hello World')
self.write('Hello World')
self.write('Hello World')
self.set_status(200,'ok') #设置响应状态码,和描述,已认证状态码(100~500)
可以省略描述,服务器会自动补全,自定义(xxx),需要指定

self.set_header('myheader','myheader') #设置响应头方法一

def set_default_header(self): #设置响应头方法二(自动执行,同名响应头方法一覆盖方法二)
self.set_header('myheader','myheader')
self.set_header('myheader‘’,'myheader')

猜你喜欢

转载自www.cnblogs.com/yanhuazidi/p/10331766.html