设为首页 加入收藏

TOP

Tornado基础学习篇<一>(三)
2018-12-06 16:09:36 】 浏览:307
Tags:Tornado 基础 学习 < >

en(options.port) tornado.ioloop.IOLoop.current().start()

request.files方法可以接受上传文件,我们需要做的就是保存文件操作。

使用表单格式可以上传文件如图:

 

 

set_header方法自定义请求头

import tornado
from tornado import ioloop, httpserver
from tornado.web import RequestHandler, url
from tornado.options import define, options
import json, time

tornado.options.define("port", type=int, default=8002, help="服务器客户端")


class IndexHandler(RequestHandler):
    # 自定义header
    def set_default_headers(self):
        self.set_header("Content", "application/json; charset=UTF-8")
        self.set_header("itcast", "python")

    def get(self):

        # 返回json数据
        stu = {
            "name": 'zhaozhi',
            "age": 24,
            'sex': ""
        }
        self.write(stu)


# 入口文件
if __name__ == '__main__':
    tornado.options.parse_command_line()
    app = tornado.web.Application([(r"/", IndexHandler),

                                   ],
                                  debug=True)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.current().start()

函数set_default_headers函数是RequestHanlder的方法,用于设置全局默认header。

如果在get请求中出现set_header方法并且定义header属性和全局设置有相同,以get请求局部设置的header属性值为优先。

 

Http状态码

可以使用RequestHandler类的set_status()方法自定义设置HTTP状态码。有很多定义好的状态码,例如:

404 Not Found

Tornado会在HTTP请求的路径无法匹配任何RequestHandler类相对应的模式时返回404(Not Found)响应码。

400 Bad Request

如果你调用了一个没有默认值的get_argument函数,并且没有发现给定名称的参数,Tornado将自动返回一个400(Bad Request)响应码。

405 Method Not Allowed

如果传入的请求使用了RequestHandler中没有定义的HTTP方法(比如,一个POST请求,但是处理函数中只有定义了get方法),Tornado将返回一个405(Methos Not Allowed)响应码。

500 Internal Server Error

当程序遇到任何不能让其退出的错误时,Tornado将返回500(Internal Server Error)响应码。你代码中任何没有捕获的异常也会导致500响应码。

200 OK

如果响应成功,并且没有其他返回码被设置,Tornado将默认返回一个200(OK)响应码。

 

set_status()方法有两个参数,第一个为状态码,第二个为响应结果(已有状态码可以不设置此参数,新的状态码必须设置)。这里就不给示例了,可以自己尝试写一下

你想使用自己的方法代替默认的错误响应,你可以重写write_error方法在你的RequestHandler类中。(检测到异常会抛出)

我们也可以在get方法中使用send_error方法来直接抛出异常。这两种方法和set_status方法参数一致。

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options
define("port", default=8002, help="run on the given port", type=int)

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'Hello')
        self.write(greeting + ', friendly user!')
    def write_error(self, status_code, **kwargs):
        self.write("Gosh darnit, user! You caused a %d error." % status_code)

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

 

redirect方法实现登录跳转

import tornado
from tornado import ioloop, httpserver
from tornado.web import RequestHandler, url
from tornado.options import define, options

tornado.options.define("port", type=int, default=8002, help="服务器客户端")


class IndexHandler(RequestHandler):

    def get(self):
        self.write("登录成功")


#登录模块
class LoginHandl  
		
Tornado基础学习篇<一>(三) https://www.cppentry.com/bencandy.php?fid=77&id=195260

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇爬虫之股票定向爬取 下一篇Titanic生存分析