【Python】tornado请求设置

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()
发布了192 篇原创文章 · 获赞 18 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/luolinll1212/article/details/103250981