2016-03-13 48 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> 
''' 
相關問題