Tornado StaticFileHandler/static_path/template_path 笔记

使用StaticFileHandler进行首页默认访问页面,最好将StaticFileHandler放在最后面,这样不会覆盖要匹配自定义的路径

import tornado.web
import tornado.ioloop
import tornado.options
import tornado.httpserver
from tornado.options import options
from tornado.web import RequestHandler, StaticFileHandler
import os

current_path = os.path.dirname(__file__)
tornado.options.define('port', type=int, default=8000, help="服务器端口")

class IndexHandler(RequestHandler):
    def get(self):
        self.write('OK')

if __name__ == '__main__':
    tornado.options.parse_command_line()
    app = tornado.web.Application([
        (r'/(.*)', StaticFileHandler, dict(path=os.path.join(current_path, 'static/html'), default_filename='index.html')),
    ], debug=True)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.current().start()

static_path/template_path

static_path:设置静态文件的访问目录

template_path:设置静态页面路径

static_url(): 根据设置的静态,目录寻找静态文件

render():跳转文件

import tornado.web
import tornado.ioloop
import tornado.options
import tornado.httpserver
from tornado.options import options
from tornado.web import RequestHandler, StaticFileHandler
import os

current_path = os.path.dirname(__file__)
tornado.options.define('port', type=int, default=8000, help="服务器端口")

class IndexHandler(RequestHandler):
    def get(self):
        # self.render('index.html')  # 跳转静态页面
        dict1 = {'name': 'namejr', 'age':22}
        self.render('index.html',dict1=dict1)  # 使用render()还可以传递参数

if __name__ == '__main__':
    tornado.options.parse_command_line()
    app = tornado.web.Application([
        (r'/', IndexHandler),
        # 使用StaticFileHandler进行首页默认访问页面,最好将StaticFileHandler放在最后面,这样不会覆盖要匹配自定义的路径
        (r'/(.*)', StaticFileHandler, dict(path=os.path.join(current_path, 'static/html'), default_filename='index.html')),
    ], debug=True, static_path=os.path.join(current_path, 'static'), template_path=os.path.join(current_path, 'templates'))
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.current().start()

使用render()传递参数接收方法:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <!-- static_url使用静态资源文件 -->
    <link rel="stylesheet" type="text/css" href="{{ static_url('css/index.css') }}">
</head>
<body>
<h1>namejr</h1>
<p>name :{{ dict1['name'] }}, age:{{ dict1['age'] }}</p>
</body>
</html>

关于静态文件使用if..else..等语句

{% if %}...{% elif %}..{% else %}...{% end %}

{% for %} {% end %}

扫描二维码关注公众号,回复: 4278480 查看本文章

即使用{%%}方式执行python语句,使用{{ num }} 接收静态参数

猜你喜欢

转载自www.cnblogs.com/namejr/p/10034498.html