【Flask】Session

用法

Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪

Flask 中 session 是需要 secret_key 的

from flask import session
app = Flask(__name__)
app.secret_key = "henry"

secret_key 实际上是用来加密字符串的,如果在实例化的app中没有 secret_key 那么开启session一定会抛异常的

from flask import Flask,render_template,request,session,redirect

app = Flask(__name__)
# 设置secret_key
app.secret_key = "123456"
app.debug = True
# app.config["DEBUG"] = True

@app.route(‘/login‘,methods=["POST","GET"])
def login():
    if request.method == "GET":
        return render_template("login.html")

    if request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("password")
        if username == "henry" and password == "123456":
            # 登录成功设置session
            session["username"] = username
            return redirect(‘index‘)
        else:
            return "404"

@app.route(‘/index‘)
def index():
    # 检查是否是登录用户
    if session.get("username"):
        return "这是index页面"
    else:
        return redirect(‘login‘)
if __name__ == ‘__main__‘:
    app.run("0.0.0.0", 9876)

cookies 中的 session 是什么

cookies 中 session 存储的是通过 secret_key 加密后的 key , 通过这个 key 从flask程序的内存中找到用户对应的session信息

原文地址:https://www.cnblogs.com/youxiu123/p/11605776.html

时间: 2024-10-09 04:08:26

【Flask】Session的相关文章

【转载】Session分布式共享 = Session + Redis + Nginx

转载blogs文章,以作收藏学习 原文作者:傲翼飞寒 原文地址:http://www.cnblogs.com/newP/p/6518918.html 一.Session 1.Session 介绍 我相信,搞Web开发的对Session一定再熟悉不过了,所以我就简单的介绍一下. Session:在计算机中,尤其是在网络应用中,称为“会话控制”. 每个用户(浏览器)首次与web服务器建立连接时,就会产生一个Session,同时服务器会分配一个SessionId给用户的浏览器.我们可以用Fiddler

【Flask】 结合wtforms的文件上传表单

表单中的文件上传 基本的表单渲染,表单类设置等等就不多说了,参看另一个文章即可.但是那篇文章里没有提到对于FileField,也就是上传文件的表单字段是如何处理,后端又是如何实现接受上传过来的文件的.因为看到了一篇很好的文章[https://zhuanlan.zhihu.com/p/23731819?refer=flask],所以我决定仔细学习一下.下面将按照那篇文章的脉络,由简至繁地说明表单中文件上传的办法. ■ 利用Flask原生的机制进行文件上传 首先在前端肯定有一个带有文件上传功能的表单

【Flask】跟着官网做Flaskr微博

一 创建文件夹 /flaskr /static /templates static为放置css和javascript文件. templates用来放置 Jinja2 templates模板. 二 数据库模式 这个app只使用了一个数据表,使用SQLite数据库. 创建一个schema.sql文件放入到flaskr文件夹中 drop table if exists entries; create table entries ( id integer primary key autoincremen

【Flask】 使用Flask-Moment进行日期时间的管理

Flask-Moment Flask-Moment又是一个flask的扩展模块,用来处理时间日期等信息.用这个模块主要是考虑到两点,第一是为了让不同时区的用户看到的都是各自时区的实际时间,而不是服务器所在地的时间.第二是对于一些时间间隔的处理,如果要手动处理很麻烦,如果有模块就很好了. ■ 简介 pip install flask-moment  来安装这个扩展模块.值得一提的是,单单在后台装好这个拓展模块是不够的,还需要前端的配合,因此前端也要配置好相关的支持库.按书上说的,使用了由JS开发的

【Flask】 项目结构说明

项目结构 Flask的一大优势就是其极其轻量化.但是也需要注意到,如果我们要用Flask做一个大项目的话,把所有代码写在一个文件里肯定是不合适的.非常难以维护.但是和Django这种框架又不一样,Flask并没有规定项目一定要遵从某种必须遵守的目录结构.最终,人们在长期的实践中得到一些比较好用因此约定俗成的目录结构. 一个典型的flask项目的目录结构是这样的(再次明确,不是强制的,而是约定俗成的一种结构): 这种结构有四个顶级文件夹,主体的程序代码都放在app包中:migrations文件夹中

【Flask】 WTForm表单编程

WTForm表单编程 在网页中,为了和用户进行信息交互总是不得不出现一些表单.flask设计了WTForm表单库来使flask可以更加简便地管理操作表单数据.WTForm中最重要的几个概念如下: Form类,开发者自定义的表单必须继承自Form类或者其子类.Form类最主要的功能是通过其所包含的Field类提供对表单内数据的快捷访问方式. 各种Field类,即字段.一般而言每个Field类都对应一个input的HTML标签.比如WTForm自带的一些Field类比如BooleanField就对应

【Flask】 Jinja2模板语言

Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多Jinja2的使用方法啊,下面将补充或者更加详细地说明Jinja2作为模板语言的使用. [Jinja2官方文档]http://docs.jinkan.org/docs/jinja2/ ■ 基本语义 看过之前模板的例子就知道,Jinja2做构成的模板文件中,文本内容大致可以分成几个种类.比如特殊文本(

【Python-Requests】【三】session & cookie

保存http请求的状态(请求的上下文) [区别&联系] 1. cookie保存在客户端的浏览器,比如标识是哪个请求者.购物车应用等 session保存在服务端,http连接时无则创建,有则用现有的 2. cookie是明文,相对不安全 session是散列的,相对安全 3. 联系  session分配给后可通过多种方式保存在客户端,可以用cookie,可以用重写URL(在URL中标识),可以表单隐藏字段 [生命周期] cookie是持续的,设置了时限则保存在硬盘,并且各浏览器共享:没设置则默认为

【Flask】Request

请求方式 Flask默认是GET请求 如果我们在一个页面中即需要GET请求又需要POST请求那么我们需要重写methods方法: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="&