config.py文件说明
config.py文件内容为:
1.DEBUG选项
- DEBUG设置为true时,工作在调试模式
- 调试模式中,保存改动时会重启服务器,减小手动重启服务器的次数
- 如果保存后的代码有错,会重启失败
2.static_path
设置静态文件目录
3.template_path
设置模板文件目录
路由传参
路由传参就是通过app路由将参数传至handler页面的代码中去,比如下面的代码就是将两个参数:“word1”:“test1”,“word2”:"test2"传到index.py文件的PassParameterHandler页面代码中去。
首先修改application.py文件:
from views.index import IndexHandler,HomeHandler,PassParameterHandler
import tornado.web
import config
class Application(tornado.web.Application):
def __init__(self):
handlers=[
(r'/',IndexHandler),
(r'/home',HomeHandler),
# 路由传参
(r'/passparameter',PassParameterHandler,{"word1":"test1","word2":"test2"})
]
super(Application,self).__init__(handlers,**config.settings)
传参通过字典的方式进行
然后修改index.py文件:
传参需要重写initialize方法:
from tornado.web import RequestHandler
class IndexHandler(RequestHandler):
def get(self):
self.write("test")
class HomeHandler(RequestHandler):
def get(self):
self.write("test:Home")
# 路由传参
class PassParameterHandler(RequestHandler):
def initialize(self,word1,word2):
self.word1=word1
self.word2=word2
def get(self):
print(self.word1,self.word2)
self.write("pass parameter test")
运行结果:
在浏览器中输入:http://localhost:9000/passparameter
网址重定向
这部分内容包括2个:
1.网页的重定向即网页的跳转
2.用send_error和write_error方法处理HTTP状态错误码
1.网页重定向
网址重定向就是当我们输入一个URL地址时会跳转其他的页面去
首先修改application.py文件,增加一个路由:
from views.index import IndexHandler,HomeHandler,RedirectHandler
import tornado.web
import config
class Application(tornado.web.Application):
def __init__(self):
handlers=[
(r'/',IndexHandler),
(r'/home',HomeHandler),
# 网页重定向
(r'/redirect',RedirectHandler)
]
super(Application,self).__init__(handlers,**config.settings)
然后在index.py文件中增加一个重定向的页面handler,RedirectHandler:
from tornado.web import RequestHandler
class IndexHandler(RequestHandler):
def get(self):
self.write("test")
class HomeHandler(RequestHandler):
def get(self):
self.write("test:Home")
# 重定向:这里重定向到了根目录
class RedirectHandler(RequestHandler):
def get(self, *args, **kwargs):
self.redirect("/")
这里是重定向到了根目录:self.redirect("/")
运行结果:
在浏览器中输入:localhost:9000/redirect
页面会自动跳转到根目录中去
2.HTTP状态错误码
状态错误码的设置用send_error和write_error两个方法来实现
其中send_error用于发送一个错误码,write_error用于处理错误码
首先修改application.py文件,增加error的路由页面:
from views.index import IndexHandler,HomeHandler,ErrorHandler
import tornado.web
import config
class Application(tornado.web.Application):
def __init__(self):
handlers=[
(r'/',IndexHandler),
(r'/home',HomeHandler),
# HTTP状态错误码处理
(r'/error',ErrorHandler)
]
super(Application,self).__init__(handlers,**config.settings)
然后在index.py文件中增加ErrorHandler页面代码:
from tornado.web import RequestHandler
class IndexHandler(RequestHandler):
def get(self):
self.write("test")
class HomeHandler(RequestHandler):
def get(self):
self.write("test:Home")
# HTTP状态错误码处理
class ErrorHandler(RequestHandler):
def write_error(self, status_code, **kwargs):
if(status_code==500):
self.write("服务器内部错误")
elif status_code==404:
self.write("资源不存在")
else:
self.write("未知错误")
def get(self, *args, **kwargs):
flag=self.get_query_argument("flag")
if flag=='0':
self.send_error(500)
self.write("right page")
- 首先通过URL地址获取flag的信息
- 这里设置flag=0时转向错误页面,否则页面正常,输出“right page”标志
- flag=0时,通过self.send_error方法将错误码(这里是500)传至write_error方法中,然后write_error针对传进来的错误码进行处理
- flag等于其他值时,不会跳转到其他页面,会输出“right page”标志
运行结果:
在浏览器中输入:localhost:8888/error?flag=1 时,显示:
在浏览器中输入:localhost:8888/error?flag=0 时显示: