首頁  >  問答  >  主體

python flask 如何使用cookie,第一次访问index时,重定向到login

# -*- coding:utf-8 -*-
from flask import Flask,redirect
app = Flask(__name__)

@app.route('/')
def index():
      res = request.cookie()
    if res == '':
        return redirect('/login')
    
@app.route('/login')    
def v_login():
    return 'this page is for login only!'
    
app.run(host='0.0.0.0',port=80)

我是这样想的:获取cookie内容,判断cookie是否为空,如果为空就重定向到login

请问这样子对吗?


高洛峰高洛峰2919 天前1007

全部回覆(1)我來回復

  • 三叔

    三叔2016-10-22 15:58:16

    你这排版,对于有强迫症的筒子来说,简直是末日...
    首先,是cookies而不是cookie,然后cookies是一个字典,而不是一个函数,所以你不能用cookies()这样的方法来进行取值
    可以看下官方文档的说明

    1.jpg

    作为字典,你必须要用get才能取到里面的值,比如一般来说你要取username的值,那你可以如下写。

    from flask import Flask,request,redirect,url_for
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        res = request.cookies.get('username')
        if res is None:
            return redirect(url_for('login'))
    
    @app.route('/login')
    def login():
        return 'You are in login route now'
    
    if __name__=='__main__':
        app.run(debug=True)

    然后可以看下结果,我的request里面当然是没有username的,所以,我被redirect到了login里面

    1.jpg

    回覆
    0
  • 取消回覆