作者:奥黛丽凵赫本 | 来源:互联网 | 2024-11-12 19:58
本文详细介绍了Tornado框架中模块和静态文件的使用方法。首先明确模块与模板的区别,然后通过具体的代码示例展示如何在HTML文档中使用模块,并配置模块的路由。最后,提供了模块类中参数获取的示例。
1. 首先需要明确的是,模块(Module)并不是模板(Template)。虽然它们都用于生成HTML内容,但模块具有更高的复用性和灵活性。
2. 模块的表现形式是在HTML文档中。例如:
{% extends 'base.html' %}
{% block title %}登录页面{% end %}
{% block body %}
#--------------------------------------------------------
{% module mymodule() %}
{% end %}
3. 模块中的代码是从HTML中提取出来的一部分,可以在多个页面中复用。
4. 模块的路由配置通过 ui_modules
参数实现。例如:
from tornado.web import Application
from os.path import join, dirname
app = Application([
('/', IndexHandler),
('/login', LoginHandler),
('/blog', BlogHandler),
('/regist', RegistHandler)
],
template_path=join(dirname(__file__), 'mytemplate'),
static_path=join(dirname(__file__), 'mystatics'),
ui_modules={'mymodule': MyModule, 'myblogmodule': MyBlogModule}
)
5. 模块类中可以通过 render
方法获取请求参数。例如:
from tornado.web import UIModule
class MyModule(UIModule):
def render(self, *args, **kwargs):
msg = ''
uri = self.request.uri
print('uri:---->', uri)
query = self.request.query
print('query:--->', query)
if query:
msg = '用户名或密码错误!'
return self.render_string('module/module_login.html', result=msg)
6. 以下是项目目录结构的示意图: