美文网首页
线程隔离g对象

线程隔离g对象

作者: Dozing | 来源:发表于2018-11-06 22:35 被阅读1次

保存全局变量的g属性

g:global

  1. g对象是专门用来保存用户的自定义数据的
  2. g对象在一次请求中的所有的代码的地方,都是可以使用的
# g_demo.py
from flask import Flask,g,render_template,request

from utils import login_log

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'index'

@app.route('/login/',methods = ['GET','POST'])
def login():
    if request.method == 'GET':
      return render_template('login.html')
    else:
      username = request.form.get('username')
      password = request.form.get('password')
      if username == 'zhiliao' and password == '111111':
        # 就认为当前用户的用户名和密码正确
        g.username = 'zhiliao'
        #login_log(username)
        g.ip = 'xxx'
        login_log()
        return '恭喜!登录成功!'
      else:
        return '你的用户名或密码错误!'


if __name__ == '__main__':
  app.run(debug=True)
# utils.py
from flask import g

# def login_log(username):
#     print('当前登录的用户是:%s' %username)

def login_log():
    print('当前登录的用户是:%s' % g.username)

def login_ip_log():
    pass
<!--templates/login.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="" method="post">
        <table>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name = "username"></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name = "password"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value = "登录"></td>
            </tr>
        </table>
    </form>
</body>
</html>

相关文章

  • 线程隔离g对象

    保存全局变量的g属性 g:global g对象是专门用来保存用户的自定义数据的 g对象在一次请求中的所有的代码的地...

  • Android ThreadLocal源码分析

    ThreadLocal是一个用于将对象线程封闭的类,每个线程都能访问到相互隔离的对象副本,这样访问这个对象就一定是...

  • ThreadLocal

    让某个需要用到的对象在线程间隔离,每个线程有自己独立的对象 两大场景 1、每个线程需要一个独享的对象(通常是工具类...

  • Java 之 ThreadLocal 详解

    ThreadLocal 在java中是充当“线程本地变量”使用的,在每个线程都会创建该对象从而实现线程之间的隔离,...

  • ThreadLocal

    ThreadLocal的作用 ThreadLocal是为了隔离多个线程的数据共享。每个线程拥有自己的对象,不会和其...

  • ThreadLocal和Loop的联动

    ThreadLocal和Loop的联动,保证了线程的隔离 ThreadLocal 可以把一个对象保存在指定的线程中...

  • Hystrix

    容错方法 资源隔离 熔断 降级 资源隔离 资源隔离主要指对线程的隔离。Hystrix提供了两种线程隔离方式:线程池...

  • ThreadLocal原理解析与注意事项

    一、引言 ThreadLocal是并发场景下用来解决变量共享问题的类,它能使原本线程间共享的对象进行线程隔离,即一...

  • 【JVM 知识体系框架总结】

    JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆->数组对象 线程隔离区虚拟机栈-> 方法本地方法栈...

  • 面试官:JVM 这些我必问

    JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆->数组对象 线程隔离区虚拟机栈-> 方法本地方法栈...

网友评论

      本文标题:线程隔离g对象

      本文链接:https://www.haomeiwen.com/subject/qlipxqtx.html