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抛出的错误信息,并返回给浏览器错误页面