tornado提升

tornado基础目录框架:

    -server.py             -服务器文件

    -config.py            -参数文件及配置文件

    -application.py     -url文件

    -static                   -保存静态文件的目录

    -templates            -保存模板文件的目录

    -upfile                   -保存上传文件的目录

    -views                    -保存视图文件的目录


application文件内容:

    import tornado.web

    import views

    class Application(tornado.web.Application):

            def __init__(self):

                    handler = [

                        ("/", views.homeHandler),  

                        ]

                    super(Application,self).__init__(handler, ... ) 

    参数:

            debug = False  # True表示运行在调试模式下,Flase表示运行在生产模式下.同时可以有自动重启、取消缓存编译的

                                        模板、取消缓存静态文件的hash值、提供追踪功能等功能

            autoreload # 自动重启

            compiled_template_cache = False # 取消编译模板的缓存

            serve_traceback = False # 取消追踪功能

            static_path # 设置静态文件目录

            template_path # 设置模板文件目录 

    路由:

            handlers = [(r"/", index,{"arg1": "good", "arg2":"nice"}), .... ]# 传参

            视图类中的initialize()方法接收参数

            tornado.web.url(r"/home", index.homeHandler, name = "home")# 如果使用name属性 , 不能使用元组方式定义

            self.reverse_url("home")


视图中tornado.web.RequestHandler 

    利用HTTP协议向服务器传递参数

            提取url的特定部分    

                # ?P< .. >等

            查询字符串get方式传递参数

                使用self.get_query_argument(name, default=ARG_DEFAULT, strip= True)

                        name: 从get请求中参数字符串中返回指定参数的值,如果出现多个同名参数,则返回最后一个。

                        default: 设置未传参数时的默认参数,如果没有设置默认参数,则抛出警告

                        strip: 过滤参数两边的空格

                使用self.get_query_arguments(name,strip=True)

                        name:从get请求参数中获取参数的值,可以获取相同名称的参数,返回一个列表

            请求体携带数据post方式传递参数

                使用self.get_body_argument或self.get_body_arguments()获取

            既可以获取get请求也可以获取post请求

                使用self.get_argument和self.get_arguments()获取

            在http报文头中增加自定义字段


    request对象

            作用:存储了关于请求的相关信息

            属性: 

                    method:HTTP请求的方式

                    host: 被请求的主机名

                    url: 请求的完整资源地址 包括路径和get查询参数部分

                    path: 请求的路径部分

                    query: 请求的参数部分

                    version: 使用的http版本

                    headers: 请求的协议头, 字典类型

                    body: 请求体

                    remote_ip: 客户端ip地址

                    files: 用户上传的文件,字典类型

    tornado.httputil.HTTPfile对象

        接收到的文件对象

        属性:    

                filename: 文件名

                body:文件的数据实体

                content_type: 文件类型

    response对象:

        self.write("string") 

        self.finish() # 刷新缓冲区,关闭当次请求通道,在finish下边不用再self.write()

        self.write(json.dumps(dic)) # 返回json数据类型 Content-Type 属性值为text/html

        self.write(dic) # 返回json数据类型 Content-Type 属性值为 application/json

        self.set_header(name,value) #手动设置一个名为name,值为value的响应头字段

        def  set_default_headers(self) #在进入HTTP响应处理方法之前被调用,可以重写该方法设置默认的响应头

        def set_status(status_code,reson= None) #为响应设置状态码,如果reason值为None 则状态码必须是官方值

        self.redirect(url) #重定向到url网址

        self.send_error(status_code = 500, **kwargs) # 抛出HTTP错误状态码,默认为500,抛出错误后会调用                                                                                                      self.write_error()方法进行处理,并返回给浏览器错误界面

        self.write_error(status_code,**kwargs ) # 处理send_error抛出的错误信息,并返回给浏览器错误页面

猜你喜欢

转载自blog.csdn.net/huolan__34/article/details/80723684