你能夠在本身的模板中訪問一些 Flask 默認內置的函數和對象python
你能夠從模板中直接訪問Flask當前的config對象:sql
{{config.SQLALCHEMY_DATABASE_URI}} sqlite:///database.db
就是flask中表明當前請求的request對象:數據庫
{{request.url}} http://127.0.0.1
爲Flask的session對象flask
{{session.new}} True
在視圖函數中設置g變量的 name 屬性的值,而後在模板中直接能夠取出安全
{{ g.name }}
url_for會根據傳入的路由器函數名,返回該路由對應的URL,在模板中始終使用url_for()就能夠安全的修改路由綁定的URL,則不比擔憂模板中渲染出錯的連接:cookie
{{url_for('home')}} /
若是咱們定義的路由URL是帶有參數的,則能夠把它們做爲關鍵字參數傳入url_for(),Flask會把他們填充進最終生成的URL中:session
{{ url_for('post', post_id=1)}} /post/1
這個函數會返回以前在flask中經過flask()傳入的消息的列表,flash函數的做用很簡單,能夠把由Python字符串表示的消息加入一個消息隊列中,再使用get_flashed_message()函數取出它們並消費掉:app
{%for message in get_flashed_messages()%} {{message}} {%endfor%}
上下文:至關於一個容器,保存了 Flask 程序運行過程當中的一些信息。函數
Flask中有兩種上下文,請求上下文和應用上下文工具
思考:在視圖函數中,如何取到當前請求的相關數據?好比:請求地址,請求方式,cookie等等
在 flask 中,能夠直接在視圖函數中使用 request 這個對象進行獲取相關數據,而 request 就是請求上下文的對象,保存了當前本次請求的相關數據,請求上下文對象有:request、session
它的字面意思是 應用上下文,但它不是一直存在的,它只是request context 中的一個對 app 的代理(人),所謂local proxy。它的做用主要是幫助 request 獲取當前的應用,它是伴 request 而生,隨 request 而滅的。
應用上下文對象有:current_app,g
應用程序上下文,用於存儲應用程序中的變量,能夠經過current_app.name打印當前app的名稱,也能夠在current_app中存儲一些變量,例如:
current_app.name current_app.test_value='value'
g 做爲 flask 程序全局的一個臨時變量,充當者中間媒介的做用,咱們能夠經過它傳遞一些數據,g 保存的是當前請求的全局變量,不一樣的請求會有不一樣的全局變量,經過不一樣的thread id區別
g.name='abc'