04.01 session cookie 权限跳转

服务器将登陆信息代码写到客户端(浏览器)cookie里面。第二次登陆直接带着cookie访问。  cookie是键值对形式。


session:

session建立会话,存在服务器里面,注销之前一直存在。

不动的话,过期了,重新登录,session有周期

服务器为每一个用户建立一个session对象,产生sessionid来识别,sessionID存在cookie里

存储用户名

总结:session是服务端保存的一个数据结构,用来跟踪用户状态,数据可以保存在集群、数据库、文件中。

cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现session的一种方式。

HTTP无状态的,tcp有状态,保证两方通信。


请求,响应周期短,一次请求一次响应。



将登陆用户信息保存在session中,展示在页面中

if len(bloguserset)==1:
    #将用户名放入session
    session=request.session
    session['username']=uname
  
 
 
页面取:session:{{request.session.username }}

不需跳转页面,session
默认周期:两周
 
 
 
 
注销,将session清空,或者把键清除。
 
 
def logout(request):
    session=request.session
    #session.clear()清除session,最好用pop
    #session.pop('username') 清除键
    session.flush()#清空session
    return render(request,'login.html')

 
 
 
 
 
 
 
 
如果在django里写判断,格式:
 
 
def logout(request):
    session=request.session
    #session.clear()
    #session.pop('username')
    session.flush()
    return render(request,'success.html')
success  页面
 
 
----------欢迎访问博客管理系统-----
 
 
 
 
{% if request.session.username is not None %}#如果session不是空
欢迎{{ bloguser.userName }}<br>
<a href="/blog/logout">注销</a>#出现注销页面
{% else %}
<a href="/blog/login">登陆</a> #在点注销,跳转当前页面,因为session清空所以出现登录,点登陆调到登录页面
{% endif %}
 
 
 
 
 
 
 
 
 
 
思路:
 
 
例如淘宝:
直接登录后,什么页面都可以看了
未直接登录,想看某个页面需要登录,登录完直接跳转这个页面,实现此功能
 
 
 
 
def a(request):
    if request.session.get('username') is not None:
        return render(request,'a.html')
    else:
        request.session['uri']=request.get_raw_uri()#记录一下之前想要想要访问页面的路径
        return render(request,'login.html')
else思路:1、登录跳转success,再点a,直接跳转a页面
2、点a,如果之前登录,跳转a页面
3、没有登录点a,跳转登录页面,登录后默认跳转success页面,但是想直接访问a页面,加判断,是否有访问a页面的路径uri,
如果uri有值,就跳转a页面,如果没有值,就跳转success页面
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/gaoshiqi5322688/article/details/79775278