FLASK Cookie § Session

271 阅读1分钟

Cookie和Session

cookie和session都是由server端创建的,唯一的区别是session由server端保存,而cookie由client端保存

Cookie

@app.route("/set_cookies")
def set_cookies():
    response = app.make_response("success set cookies")
    response.set_cookie("name", "python")
    response.set_cookie("env", "ubuntu")
    # 从返回response后开始计算(单位为s)
    response.set_cookie("max", "20s", max_age=20)
    # 格林尼治时间
    response.set_cookie("expires", "in 2020-08-06T02:06:00.309Z", expires=datetime.datetime(year=2020, month=8, day=6, hour=2, minute=6))
    return response

@app.route("/delete_cookie/<cookie_name>")
def delete_cookie(cookie_name):
    response = app.make_response("success")
    response.delete_cookie(cookie_name)
    return response

@app.route("/clear_cookies")
def clear_cookies():
    response = app.make_response("success")
    for key in flask.request.cookies:
        response.delete_cookie(key)
    return response

@app.route("/print_cookies")
def print_cookies():
    cookies = flask.request.cookies
    return cookies

Session

app.secret_key = os.urandom(16)

# 创建或者修改session后,flask会自动添加或修改响应cookie中的session键值对
@app.route("/set_session/<username>/<password>")
def set_session(username, password):
    flask.session['username'] = username
    flask.session['password'] = password
    return "success"

@app.route("/delete_session/<session_name>")
def delete_session(session_name):
    flask.session.pop("password", None)
    return "success"

@app.route("/clear_session")
def clear_session():
    flask.session.clear()
    return "success"

@app.route("/print_session")
def print_session():
    session_map = dict()
    for key in flask.session:
        session_map[key] = flask.session.get(key)
    return session_map