我有这个主html模板:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Start Bootstrap - SB Admin Version 2.0 Demo</title>
<!-- Core CSS - Include with every page -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="font-awesome/css/font-awesome.css" rel="stylesheet">
<!-- SB Admin CSS - Include with every page -->
<link href="css/sb-admin.css" rel="stylesheet">
<!-- Core Scripts - Include with every page -->
<script src="js/jquery-1.10.2.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>
<!-- SB Admin Scripts - Include with every page -->
<script src="js/sb-admin.js"></script>
</head>
这是test.py文件:
from wheezy.template.engine import Engine
from wheezy.template.ext.core import CoreExtension
from wheezy.template.loader import FileLoader
T = ['where/project/folderbase/is']
engine = Engine(
loader=FileLoader(T),
extensions=[CoreExtension()]
)
master_template = engine.get_template(r'master.htm')
@route('/test')
def login_name():
return master_template.render({})
我是一个完整的模板和网页设计n00b。
假设我通过本地主机上的任何python web服务器(比如flask)运行这个:port/test
什么也没出现。
为什么?
这是什么?
我需要包含
@path_for
或其他内容吗?是否有必要在html文件中提供静态文件以定义特定文件夹中的所有文件->“静态”
或者可以从现在的位置访问它们,如上面的代码所示?
最佳答案
你有很多问题。即使你不再在乎,我也会回答。。。
如果您正确配置了Flask,并在route/url“test”上提供了该模板,则不会出现任何内容,因为您没有在html中定义包含任何内容的<body>
。
在wheezy.templates中,使用@my_variable
语法访问局部变量/函数(即在其前面加上@符号)。如果要访问作为上下文一部分传递给模板的变量,则需要首先使用它,@require(my_variable)
。您的示例使用一个空的dict作为上下文,因此没有可访问/需要的变量。
path_for是wheezy.routing的一部分,而不是wheezy.templates。它用于获取命名路由的url(即您可以执行@path_for('test')
,它将返回localhost:1234/test
。只有在使用完整的wheezy.web框架(使用wheezy.routing和wheezy.templates)时,使用path-for才有意义。烧瓶有它自己的功能(我不确定它们是什么,我不使用烧瓶)。您需要通过上下文将这些函数传递到模板中,然后@require them to use them through(或者为wheezy.template做一些自定义扩展)。
关于python - 通过wheezy.template提供静态文件CSS和JS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21286473/