tornado prepare()预处理方法,初始化数据格式

日期:2018-07-05 20:04:30 类别:  tornado

tornado prepare()预处理方法,初始化数据格式。在执行HTTP请求方法之前执行prepare()方法。

下面看一个例子,判断数据是否为json格式。

#coding:utf-8

import tornado.web

from tornado.web import RequestHandler

import tornado.ioloop

import tornado.httpserver

import json

import tornado.options

from tornado.options import options


tornado.options.define("port",type=int,default=8000,help="tornado httpserver port num")


class IndexHandler(tornado.web.RequestHandler):

    def initialize(self,name):

        self.webSite = name

    def prepare(self):

        if self.request.headers.get("Content-Type").startswith("application/json"):

            self.json_dict = json.loads(self.request.body)

        else:

            self.json_dict = None

    def post(self, *args, **kwargs):

        if self.json_dict:

            for key,value in self.json_dict.items():

                self.write("<h3>%s</h3><p>%s</p>"%(key,value))

    def get(self, *args, **kwargs):

        print self.webSite


if __name__ == "__main__":

    tornado.options.parse_command_line()

    app=tornado.web.Application(

        [

            (r"/",IndexHandler,dict(name="isoftvip")),

        ],

        debug=True

    )

    http_server=tornado.httpserver.HTTPServer(app)

    http_server.listen(options.port)

    tornado.ioloop.IOLoop.current().start()

用postman发送post请求,数据为json格式,可以看到返回数据

prepare.png