首先,用户登录到服务器之后,会保存一个key:value 值,就是session.
这个key呢,是系统随机生成的一个随机字符串,用来表示唯一的身份。
比如:87234EFFDIDf7234D:{'id':1,'username':"zhangsan",'account':0001,}
Value,就是这个key中保存的数据。默认字段:['_auth_user_id', '_auth_user_backend', '_auth_user_hash']
如果我们登录之后,想直接获取用户ID,就通过:
request.session.get('_auth_user_id')
这样就获取了用户的ID。
这里是通过Django Auth 验证登录。通过这个方法及时有效的获取到用户ID。
有了这个ID,再到user表里去查用户名就很简单了不是?
如果想在session中存入用户名(省去数据库查询步骤),在login的时候,验证ok,就在value里面加一个'name'或者'username'(自己定义),把用户名赋值进去就ok啦。
小白的我天真的以为,第二个用户登录,这个name的值就被覆盖了,错了,第二个人的key值又是一个新的随机字符串。
方法:request.session['username'] = username(后面的username是个变量)
----------------------待验证------------------
上面的方法还是太麻烦了,直接request.user 能直接拿到登录的用户名。