Django中使用session保持用户登陆连接
2018-03-02 09:26
603 查看
使用session保持用户登陆连接
在 view 中 login() 视图函数里增加如下语句不允许重复登录语句
if request.session.get('is_login',None): return HttpResponseRedirect(reverse('index'))一旦用户名和密码输入正确,就往 session 字典内写入用户状态和数据
request.session['is_login'] = True request.session['user_id'] = db_user.id request.session['user_name'] = db_user.name
对于 logout() 方法进行编写。
def logout(request):
if not request.session.get('is_login', None):
# 如果本来就未登录,也就没有登出一说
return redirect("/index/")
request.session.flush()
# 或者使用下面的方法
# del request.session['is_login']
# del request.session['user_id']
# del request.session['user_name']
return redirect("/index/")使用 flush() 方法清除数据比较安全,但是不能保存 session 中的私货
对于 HTML 文件进行改写
{% if request.session.is_login %}
<li><a href="#">当前在线:{{ request.session.user_name }}</a></li>
<li><a href="/logout/">登出</a></li<
4000
span class="cm-tag cm-bracket" style="color:rgb(17,119,0);">>
{% else %}
<li><a href="/login/">登录</a></li>
<li><a href="/register/">注册</a></li>
{% endif %}
相关文章推荐
- 使用django的login来登陆用户的时候需要为用户模型添加backend
- 使用HttpClient模拟网站登陆sina邮箱(保持远程服务器session和cookie)
- Django---用户注册和登陆验证(3)--具体实现--使用默认的
- 使用外部LDAP用户认证后,DJANGO用户如何作登陆的操作?
- 第一次使用Oracle连接登陆、新建oracle用户、PLSQL Developer连接oracle数据库、Navicat for Oracle连接数据库
- [转]mvc3 使用session来存储类来存储用户登陆信息
- django的用户认证管理,如何使用session(2)
- Django网站建设-用户登陆机制,session/cookies
- 使用PHP会话(Session)实现用户登陆功能
- 用户登陆界面使用Session保存并导入用户名
- 技术转载(鼠标点击X窗口关闭IE的同时清空session,最基本的就是处理用户重复登陆需要用到,我想这个的关键在于如何捕捉到关闭IE这个动作,之后再根据自身的需要使用session.invalidate()或者session.removeAttribute( "xxx "))
- node4.X以上版本中,session用来保持用户的登陆(login)状态
- jsp利用session记录登陆状态,保证用户的使用连贯性,并且防止未登录用户绕过登陆页
- 一个完整的Nodejs项目 完成连接数据库(MySQL),登陆、注册功能 session的使用 和发送邮件
- django的用户认证管理,如何使用session(1)
- 使用KSoap2-anroid连接WebService并保持Session
- django之状态保持-使用redis存储session
- 关于使用HttpSessionBindingListener获取在线用户数,同一用户登陆一次
- 局域网共享资源路径更改无法登陆问题(不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接)解决
- 根据用户是否使用来保持Session对象的有效性