flask到底能登录多少用户?
flask默认情况下是单进程的,所以每次只能处理一个请求;
当然可以多起几个进程或者线程,这样flask就可以处理多个请求;
认证后的用户,进行一次操作(一个GET操作、一次POST操作或者其他),会话信息会以Cookie:value的方式传送给flask应用,flask应用开启一个进程或者线程进行处理。
会根据Cookie的值解析出一些会话信息,根据这些会话信息内容判断用户的身份、权限等,进行相应的操作。
上面的这些会话信息会存在请求上下文里(request contents)【变量session】。请求的时候,使用内存存储这些会话信息。请求结束,销毁变量,释放内存。

from flask import render_template,session
@app.route("/test")
@login_required
def test():
if session['user']== 'admin':
print '是管理员,给予最大权限'
return render_template('index.html')
因此,个人认为,可以设置会话为很长的过期时间,这样即使很多用户处于登录状态(是指会话没有过期,再次操作无需再次认证,但是又处于非操作状态),也并不会给系统带来什么负担。
真正产生负担的(是指消耗应用所在系统内存、cpu等资源的)是那些正在做一些操作的用户。
其实,设置会话超时时间,应该是从安全的角度考虑,而非减轻系统负担的角度,过短的过期时间,反而需要用户频繁的认证操作,影响易用性。
需要说明的是,这里会话超时时间不是固定长度的,即从你最后一次操作开始计算时间,会因为你持续操作,而延迟。这样就不会发生你操作着突然被退出而要求你重新登录。
参考:
http://www.cnblogs.com/shengulong/p/7488226.html
https://windard.com/blog/2017/10/17/Flask-Session
http://cizixs.com/2017/03/08/flask-insight-session
flask到底能登录多少用户?的更多相关文章
- Flask框架实现登录注册功能(mysql数据库)
前言: 本例使用Flask框架完成登录和注册操作,包括前端(index.html,regist.html)和后端(app.py)两部分,前端页面不过多介绍,直接进入后端部分: 逻辑思路: 登录部分:运 ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- WIN7中因为服务进程是运行在session0下面的~~第一个登录的用户session为1(WTSGetActiveConsoleSessionId取得session的Id,OpenProcessToken取得进程的令牌)
procedure TsvrExamCtrl.ServiceStart(Sender: TService; var Started: Boolean);var CMD: string;begin ...
- Linux 命令 - w: 显示登录的用户及其当前执行的任务
命令格式 w - [husfV] [user] 命令参数 -h 不打印头部信息 -u 当列出当前进程和 CPU 时间时忽略用户名,这主要是用于执行su命令后的情况. -s 使用简短的格式化,不打印 L ...
- linux(centos)上安装mysql教程,为需要远程登录的用户赋予权限
最近把之前学生时代的win server换成了linux(centos)系统,因为win对于部署一些项目时候比较麻烦,直接入正题 1.准备阶段 我使用xshell工具管理服务器,相应下载和安装自行百度 ...
- springboot+layui实现PC端用户的增删改查 & 整合mui实现app端的自动登录和用户的上拉加载 & HBuilder打包app并在手机端下载安装
springboot整合web开发的各个组件在前面已经有详细的介绍,下面是用springboot整合layui实现了基本的增删改查. 同时在学习mui开发app,也就用mui实现了一个简单的自动登录和 ...
- 用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录
创建不能ssh登录的用户sftpuser1,密码用于sftp登录: sudo adduser sftpuser1 --home /sftp/sftpuser1 --shell /bin/false s ...
- CentOS下查看最后登录的用户信息以及LOG记录
CentOS下查看最后登录的用户信息tail /var/log/messagestail /var/log/secure 我们知道,在redhat下可以用lastlog查看各用户最后登录的信息,用la ...
- ASP .NET登录界面用户验证码代码
//ASP .NET用户登录界面经常用到验证码代码如下 private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码 ...
随机推荐
- Ryubook_1_switch_hub_源码
一.switching hub by openflow: 用Ryu实现一个有如下功能的switching hub. • Learns the MAC address of the host conne ...
- Android(java)学习笔记195:ContentProvider使用之添加数据到联系人(掌握)
1.添加联系人逻辑思路 (1)首先在raw_contacts创建一个新的id (2)在data表里面添加这个id对应的数据 2.下面通过一个案例,说明一下如何添加一条数据到联系人: (1)首先我们关注 ...
- es6 基础语法
var c= 1 <!--都不能预解析-->let a = 1//const不能修改变量const b = 1 箭头函数 =>var c = function fun(a, b) { ...
- zTree 点击文字 勾选check
callback: { onClick:function(event, treeId, treeNode){ console.info("onClick") var treeObj ...
- MySQL 中去重 distinct 用法
在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...
- D2. Toy Train
D2. Toy Train time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- print keys %map_function 输出 散列的值: OK_funcsplit_funcpackage_VAR
my %map_function = ( 88 "OK_func" => "open_statement", 89 &qu ...
- print reverse <> 是打印全部的文件内容 ?
reverse 是倒置 <> 则是 把 @ARGV 参数列表里面的文件都读取出来 ? print <> 就是和 cat 的功能一样了. 脚本语言交流.数据处理 QQ群:66 ...
- html页面比较长,如何用js实现网页一打开显示在网页的中部?
加入js代码 <style type="text/css"> body { height: 2000px; } </style> <script ty ...
- pytorch之Tensor与Variable的区别
首先在变量的操作上:Tensor对象支持在原对象内存区域上修改数据,通过“+=”或者torch.add()方法而Variable不支持在原对象内存区域上修改数据Variable对象可求梯度,并且对Va ...