2014-01-22 53 views
3

我有这样的高手HTML模板:通过wheezy.template提供静态文件css和js?

<!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服务器像烧瓶运行这个本地主机:端口/测试

什么都没有显示出来。

为什么? 这是什么在wheezy.template? 我需要包含@require(path_for)还是其他? 是否需要为html文件中的静态文件服务器来定义特定文件夹中的所有文件 - >'static'

或者它们是否可以从现在的位置进行访问,如上面的代码中所示?

回答

1

您有很多问题。我会回答,即使你可能不在乎......

如果你已正确配置Flask,并在路由/ URL'test'上提供了该模板,那么没有任何内容会出现,因为你还没有定义<body> html中的任何内容。

在wheezy.templates中,可以用@my_variable语法(即用@符号作为前缀)访问局部变量/函数。如果要访问作为上下文的一部分传递给模板的变量,则需要先要求它,@require(my_variable)。你的例子使用一个空的字典作为上下文,所以不会有访问/需要的变量。

path_for是wheezy.routing的一部分,而不是wheezy.templates。它用于获取命名路由的URL(例如,你可以做@path_for('test'),它会返回localhost:1234/test。使用path_for只有在使用完整的wheezy.web框架时才有意义(它使用wheezy.routing和wheezy.templates )。Flask会有自己的功能来做这件事(我不确定他们是什么,但我没有使用Flask),你需要通过上下文将这些函数传递给模板,然后@require他们使用他们虽然(或做一些自定义扩展wheezy.template)。