session的方法
request.session['k1'] # 获取session的值 request.session.get('k1', None) # 获取值,没有则默认为None request.session['k1'] = 123 # 设置值 request.session.setdefault('k1',123) # 设置值,存在则不设置 del request.session['k1'] # 删除session值 request.session.clear() request.session.delete(request.session.session_key) ---> 键 值 键值对 <--- request.session.keys() # 获取其中的key值。因为session里的保存的是字典类型的数据。 request.session.values() request.session.item() request.session.iterkeys() request.session.itervalues() request.session.iteritems() request.session.session_key # 获取其中用户的一个随机字符串 request.session.clear_expired() # 将所有session失效日期小于当前日期的数据删除 request.session.exists('session_key') request.session.delete('session_key') request.session.set_expiry(value) * 如果value是个整数,session会在些秒数会失效 * 如果value是个datetime或timedelta,session就会在这个时间后失效 * 如果value是0,用户关闭浏览器session就会失效 * 如果value是None,session会依赖全局session失效策略
session之课堂小案例
from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('login/', views.login), path('index/', views.index), path('logout/', views.logout), ]
views
from django.shortcuts import render,redirect,HttpResponse # Create your views here. def login(request): if request.method == "GET": return render(request, 'login.html') elif request.method == "POST": user = request.POST.get('user') pwd = request.POST.get('pwd') if user == 'root' and pwd == '123': # 1. 生成随机字符串 # 2. 写到用户浏览器的cookie # 3. 保存到session中 # 4. 在随机字符串对应的字典中设置相关的东西 request.session['username'] = user request.session['is_login'] = True return redirect('/index/') else: return render(request, 'login.html') else: pass def index(request): # if request.session['is_login']: if request.session.get('is_login', None): user = request.session['username'] return render(request, 'index.html', {'username':user}) else: return HttpResponse('滚') def logout(request): request.session.clear() return redirect('/login/')
login
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/login/" method="POST"> <input type="text" name="user"> <input type="password" name="pwd"> <input type="submit" value="提交"> </form> </body> </html>
index
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>欢迎{{ username|safe }}登陆</h1> <h1>news_method:{{ request.session.username }}</h1> <a href="/logout/">注销</a> </body> </html>
浙公网安备 33010602011771号