天天看點

用flask開發個人部落格(4)—— flask中4種全局變量

一  current_app

        current_app代表目前的flask程式執行個體,使用時需要flask的程式上下文激活,我們以本專欄第一篇文章中寫的test.py為例介紹下它的用法:

1.1 激活程式上下文

>>> from test import app
>>> from flask import current_app
>>> from flask import g
>>> ctx=app.app_context()
>>> ctx.push()
           

        app.app_context()為flask程式的上下文,簡單說來就是flask程式需要運作的環境變量等等.ctx.push()是激活上下文的操作,類似的,如果我們想要回收上下文,用ctx.pop()

1.2 列印目前程式名稱

>>> current_app.name
'test'
           

二  g變量

        g作為flask程式全局的一個臨時變量,充當者中間媒介的作用,我們可以通過它傳遞一些資料,下面的例子,通過g傳遞了一個名字叫做"Hyman",使用g之前也需要激活程式上下文:

>>> g.name='Hyman'
>>> g.name
'Hyman'
           

三 request對象

        請求對象,封裝了用戶端發送的HTTP請求的内容.可參照<<用flask開發個人部落格(2)—— Flask中的請求對象request>>  .

四 session

        使用者會話,用來記住請求(比如前後一個GET請求和一個POST請求)之間的值,從資料格式上來說它是字典類型。它存在于連接配接到伺服器的每個用戶端中,屬于私有存儲,會儲存在用戶端的cookie中。如下面的代碼,用于重定向url:

@app.route('/', methods=['GET','POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        session['name']=form.name.data
        return redirect(url_for('index'))
    renturn render_template('index.html',form=form,name=session.get('name'))
           

繼續閱讀