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

  • 相关阅读:
    深入探讨多态性及其在Java中的好处
    可扩展的Java线程池执行器
    Java并发:线程限制
    CF集萃3
    CF1151F
    [欧拉路]CF1152E Neko and Flashback
    LOJ#3119 随机立方体
    UOJ#449 喂鸽子
    CF1140F
    洛谷P5071 此时此刻的光辉
  • 原文地址:https://www.cnblogs.com/shengulong/p/8342293.html
Copyright © 2011-2022 走看看