import os
import json
from datetime import datetime, timedelta
import tornado.ioloop
import tornado.web
from tornado.options import define, options, parse_command_line
import pymysql
# 定义默认启动的端口port为80
define('port', default=8080, type=int) # 设置启动端口
class MainHandler(tornado.web.RequestHandler):
# 必须继承RequestHandler
def get(self):
# 接收参数
name = self.get_argument('name')
# name = self.get_query_argument('name')
# 渲染响应给浏览器的数据
self.write('hello get {0}'.format(name))
def post(self):
# 接收参数
name = self.get_argument('name')
# name = self.get_body_argument('name')
self.write('hello post {0}'.format(name))
class ResHandler(tornado.web.RequestHandler):
def get(self):
self.write('<h2>今天天气真好</h2>')
# # 设置响应状态码
# self.set_status(200)
# # 设置cookie,其中的expire参数表示过期时间,到了过期时间,自动删除
# self.set_cookie('token', '123456', expires_days=1)
# out_time = datetime.now() + timedelta(days=1)
# self.set_cookie('token123', '123456', expires_days=out_time)
#
# # 删除cookie的token值
# self.clear_cookie('token')
# self.clear_all_cookies()
#
# # 跳转
# self.redirect('/')
class PostHandler(tornado.web.RequestHandler): # Post接收json字符串
def post(self):
# 使用request属性
# 取出客户端提交的json字符串
jsonbyte = self.request.body
print('二进制格式json字符串:', jsonbyte)
jsonstr = jsonbyte.decode('utf-8') # 解码
print('json字符串:', jsonstr)
# 从json字符串转换为json对象,然后利用json对象提供的API
# 从json字符串中取出想要的内容
jsonobj = json.loads(jsonstr)
day = jsonobj.get('day') # 取出值
self.write('day = {}'.format(day))
class EntryHandler(tornado.web.RequestHandler): # 请求进入设置
def initialize(self):
# 实现功能是,访问flask9数据库,查询出学生的所有信息
print('连接数据库,查询学生的信息')
def prepare(self):
print('prepare')
def get(self):
self.write('查询数据')
def post(self):
self.write('post方式请求')
def on_finish(self):
# 最后执行的方法
print('on_finish')
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html', items=items) # 页面渲染参数
def make_app():
# handlers参数中定义路由匹配地址
return tornado.web.Application(handlers=[
(r'/', MainHandler),
(r'/res', ResHandler),
(r'/post', PostHandler)
],
template_path=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') # 选择导航
)
if __name__ == '__main__':
#解析启动命令, python xx.py --port=端口号
parse_command_line()
# 启动
app=make_app()
# 监听端口
app.listen(options.port)
# 监听启动的IO实例
tornado.ioloop.IOLoop.current().start()
【Python】tornado请求设置
猜你喜欢
转载自blog.csdn.net/luolinll1212/article/details/103250981
今日推荐
周排行