2016-03-13 46 views
0

我试图保持最小的东西,所以我不想创建模板,目录结构等。我有一个简单的CSS文件(通过RawGit)我想用它来对由视图生成的页面进行样式设置。我如何渲染一个没有模板的页面?使用Flask生成页面而不使用单独的模板文件

from flask import Flask 
application = Flask(__name__) 

# <insert magic here> 
# application.get_and_use_my_super_cool_CSS_file(URL) 
# <insert magic here> 

@application.route("/") 
def hello(): 
    return "hello world" 

if __name__ == "__main__": 
    application.run(host = "0.0.0.0") 
+0

你对模板的反感是什么?要做到这一点,你必须写出你的HTML(包括CSS)作为'hello()'的返回字符串。或者,您可以使用'render_template' ... – Suever

+0

如果您不想创建模板文件,则需要在应用程序代码中构建HTML。你需要在里面引用你的样式表。与使用模板文件相比,这通常难以阅读和维护。 – dirn

回答

2

如果您不想将模板编写为单独的文件,则可以使用render_template_string代替。这通常不是一个非常有用的功能,因为很难将大型模板保存为Python字符串。 Flask的Jinja env在渲染识别文件时还提供了一些额外的帮助,比如为HTML文件启用autoescape,所以在直接从字符串渲染时需要更加小心。

return render_template_string('''<!doctype html> 
<html> 
    <head> 
     <link rel="stylesheet" href="css url"/> 
    </head> 
    <body> 
     <p>Hello, World!</p> 
    </body> 
</html> 
''' 
相关问题