我有这个主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/

10-10 13:29