实习篇--tornado框架的记录

Tornado 是一个Python web框架和异步网络库,具体的介绍Tornado 用户指南。文章简单记录tornado的使用过程,持续更新

Hello world

import tornado.ioloop
import tornado.web


class MainHandler(tornado.web.RequestHandler): # 继承RequestHandler类
    def get(self):
        self.write("hello")


class ID0Handler(tornado.web.RequestHandler):  # 创建一个处理类继承自 tornado.web.RequestHandler
    def get(self):  # 处理类重写get方法
        self.write("hello-ID0")


class ID1Handler(tornado.web.RequestHandler):  # 继承RequestHandler类
    def get(self):
        n = int(self.get_argument('n'))  # 获取参数
        self.write('hello-ID1: n*n='+str(n*n))


class ID2Handler(tornado.web.RequestHandler):  # 继承RequestHandler类
    #get是从服务器上获取数据,post是向服务器传送数据
    def get(self):  # 先由get触发,构建一个界面
        self.write('<html><body><form action="/ID2/IDX" method="post">'
                   '<input type="text" name="message">'
                   '<input type="submit" value="Submit">'
                   '</form></body></html>')

    def post(self):  # 触发post方法
        self.set_header("Content-Type", "text/plain")
        self.write("You wrote " + self.get_argument("message"))


# 存放路由表对象列表,前面是地址,后面是映射到的响应函数
URL_Tuples = [(r"/", MainHandler), (r"/ID0", ID0Handler), (r"/ID1", ID1Handler), (r"/ID2/IDX", ID2Handler)]
app = tornado.web.Application(URL_Tuples)  # 创建这三个对象
if __name__ == "__main__":
    app.listen(8888)  # 绑定一个监听端口
    tornado.ioloop.IOLoop.current().start()  # 启动web程序,开始监听端口的连接

 在浏览器输入下图的地址即可访问,(由于没有使用服务器地址,所以默认是本地,如果是服务器地址就可以愉快的传输参数了,也可以把参数编写成html格式,暂时不搞那么复杂)

前三个响应函数是get()方法的重写,注意地址如何生成的。

以上大致分为三步:

      1, 创建一个处理类继承自 tornado.web.RequestHandler

      2,处理类重写get方法

      3,编写主函数监听端口

 

 

最后一个是post()方法的重写 ,get是从服务器上获取数据,post是向服务器传送数据。GET 数据在url中(如n的值,数据量非常小),POST 数据不在url中。在浏览器中:GET - 从指定的资源请求数据。POST - 向指定的资源提交要被处理的数据。注意看一下action="/ID2/IDX" method="post">

 

 

在实际应用中,可能只有post方法向服务器发送数据,而由于HTLM表单编码不确定一个标签的参数是单一值还是一个列表, RequestHandler 有明确的方法来允许应用程序表明是否它期望接收一个列表. 对于列表, 使用用 get_query_arguments 和 get_body_arguments 而不是它们的单数形式.具体的

实例理解

def post(self):
        # 
        predict_result = json.dumps({'code': 400, 'result': '异常'})

        try:
            #获取表单上的参数
            paramstr=self.request.body.decode('utf-8')
            infoLog.info('PredictHandler : %s' % (paramstr.replace('\n', '')))
            
            #解析参数
            code,notice = self.checkPredictParam(paramstr)
            #加载参数
            predict_param=json.loads(paramstr)

            。。。。处理。。。
            

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值