*修改模板中静态文件的引用
src="js/wow.min.js"
改为
src="{{static_url("js/wow.min.js")}}"
tornado自带的静态文件host方法
(r'/(.+?\..+)', tornado.web.StaticFileHandler, dict(path=settings['static_path'])),
*使用装饰器进行授权验证
@tornado.web.authenticated
def get...
*自动加载脚本变化,不重启服务器的方法 , 仅支持py文件, html不支持
settings中
'debug':True,
或
debug为False时
tornado.autoreload.start()
* 更改设定的方式
define('port', default=8888, help='Run on the given port', type=int)
define('debug', default=True, help='Set debug mode', type=bool)
例子
#-*- coding: utf-8 -*-
import tornado.httpserver
import tornado.ioloop
import tornado.web
import os
#7 debug为False时 实现autoreload
import tornado.autoreload
from tornado.options import define, options
#6 通过define设置变量
define('port', default=8000, help='Run on the given port', type=int)
define('debug', default=False, help='Set debug mode', type=bool)
class HomeHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
self.render('index.html')
class LoginHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
self.render('login.html')
def post(self, *args, **kwargs):
self.set_secure_cookie('user', self.get_argument('user', None))
self.write('Successully set cookie !!')
#3
class OtherHtmlHandler(tornado.web.RequestHandler):
def get_current_user(self):
user = self.get_secure_cookie('user')
return user
#4 使用装饰器进行授权验证
@tornado.web.authenticated
def get(self, page):
#4 手动验证
# if not self.current_user:
# self.redirect(self.settings['login_url'])
# return
pagename = page + '.html'
path = os.path.join(self.settings['static_path'], pagename)
self.render(pagename)
#2 一种host读取静态文件的方法
# class OtherHandler(tornado.web.RequestHandler):
# def get(self, page, extension):
# pagename = page + '.' + extension
# path = os.path.join(self.settings['static_path'], pagename)
# print(path)
# if extension != 'html':
# with open(path) as f:
# self.write(f.read())
class CustomApp(tornado.web.Application):
# 5 自动加载脚本变化,不重启服务器的方法, 仅支持py文件, html不支持
def __init__(self, debug = False):
settings = {
'template_path':os.path.join(os.path.dirname(__file__), 'moban_clean/templates'),
'static_path':os.path.join(os.path.dirname(__file__), 'moban_clean'),
'blog_title': "tornado blog",
'login_url': '/login.html',
'cookie_secret':"2379874hsdhf0234990sdhsaiuofyasop977djdj",
'xsrf_cookies':True,
# 5 自动加载脚本变化,不重启服务器的方法, 仅支持py文件, html不支持
'debug':debug,
}
handles = [
(r'/$', HomeHandler),
(r'/login.html', LoginHandler),
(r'/(.+?)\.html', OtherHtmlHandler),
# 1 一种host读取静态文件的方法
#(r'/(.+?)\.(.+)', OtherHandler),
#3 tornado自带的tornado.web.StaticFileHandler实现静态文件host方法
(r'/(.+?\..+)', tornado.web.StaticFileHandler, dict(path=settings['static_path'])),
]
super(CustomApp, self).__init__(handles, **settings)
if __name__ == '__main__':
# 6 通过define设置变量
tornado.options.parse_command_line()
# 6 通过define设置变量
#5 自动加载脚本变化,不重启服务器的方法, 仅支持py文件, html不支持
app = CustomApp(debug=options.debug)
http_server = tornado.httpserver.HTTPServer(app)
# 6 通过define设置变量
http_server.listen(options.port)
# 7 debug为False时 实现autoreload
tornado.autoreload.start()
tornado.ioloop.IOLoop.instance().start()