Flask學習——cookie操作


Cookie是客戶端的會話技術 cookie本身由瀏覽器保存,通過Response將cookie寫到瀏覽器上,下一次訪問,瀏覽器會根據不同的規則攜帶cookie過來 特點: - 客戶端會話技術,瀏覽器的會話技術 - 數據全都是存儲在客戶端中 - 存儲使用的鍵值對結構進行的存儲 - 特性 - 支持過期時間 - 默認會自動攜帶本網站的所有cookie - 根據域名進行cookie存儲 - 不能跨域名 - 不能跨瀏覽器 - Cookie是通過服務器創建的Response來創建的 設置cookie:
    
response.set_cookie(key,value[,max_age=None,exprise=None)]
 response.set_cookie(key,value[,max_age=None,exprise=None)] max_age: 整數,指定cookie過期時間 expries: 整數,指定過期時間,可以指定一個具體日期時間 max_age和expries兩個選一個指定 獲取cookie: request.cookies.get(key) 刪除cookie response.delete_cookie(key)

例子:用cookie實現登陸注銷

登錄頁前端:
<h3>首頁</h3>
<a href="{{ url_for('app.login') }}">登錄</a>

# url_for('藍圖名.函數名')
 
        
<form action="{{ url_for('app.handler') }}" methon="GET">
    用戶名:<input type="text" name="username" ><br>
    密碼:<input type="password" name="password" ><br>
    <input type="submit" value="登錄"><br>
</form>

端接收,並用response設置cookie返回給瀏覽器:

@blue.route('/login_handler')
def login_handler():
    if request.method == 'GET':
        username = request.args.get('username')
        password = request.args.get('password')

        if username == 'lili' and password == 123456:
            response =  redirect(url_for('app.index'))
      # 這里設置一下cookie response.set_cookie(
'user',username,max_age=7*24*3600) return response else: return '登錄失敗'

 登錄后,cookie檢測:

 

@blue.route('/index/')
def index():
    #渲染不到可以給個空值.
    username = request.cookie.get('user','')
    #渲染到前端
    return render_template('index.html', username=username)

 

前端接收參數並渲染:

 

 
        
<h3>首頁</h3>
{% if username %}
    <p>{{ username }}:歡迎您<a href="">注銷</a></p>
{% else %}
    <a href="{{ url_for('app.login') }}">登錄</a>
{% endif %}
 
        

注銷相關藍圖,cookie刪除:

@blue.route('/logout/')
def logout():
    response = redirect(url_for('app.index'))
    #通過response刪除cookie里的'user'
    response.delete_cookie('user')

    return response

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM