zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【SQL】CASE与DECODE
    【SQL】通过rowid查找及删除重复记录
    【SQL】联合语句
    【PLSQL】游标
    【SQL】IN、EXISTS和表连接三者的效率比较
    【SQL】CONNECT BY 层次化查询
    【SQL】MERGE
    【SQL】多表查询
    【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)
    【Python算法】归纳、递归、归简
  • 原文地址:https://www.cnblogs.com/shengulong/p/8342293.html
Copyright © 2011-2022 走看看