第11篇中描述了设置和使用cookie的方法,本篇中描述设置和使用session的方法。session主要用request参数了设置和调用,步骤如下:
step1:用request.session['key'] = 'xxxxx' 设置session
step2:用request.session.get('key', 默认值)读取session
step3: 在render中设置{'user': username, 'psw': password},在event_manage.html中设置"user"和"psw"的展示,这与cookie的设置完全一致。
def login_action(request): # request = HttpRequest(request) username = request.POST.get('username', '') password = request.POST.get('password', '') if username == 'admin' and password == '123456': request.session['user'] = username # 将session信息记录到浏览器 request.session['psw'] = password return HttpResponseRedirect('/event_manage/') else: return render(request, 'index.html', {'wronglyInput': '用户名或密码输入错误!'}) def event_manage(request): username = request.session.get('user', '') # 读取cookie password = request.session.get('psw', '') return render(request, "event_manage.html", {'user': username, 'psw': password})
step4:尝试运行,报如下错误
step5: 使用pyCharm菜单Tools->Run manage.py task..., 在控制台中输入 migrate,创建存放session的表django_session
使用migrate后,在Guest项目下可以看见生成的sqlite3数据库
用SQLiteStudio查看改数据库,看到django_session表已经创建好
Step5:重新运行,成功
Session数据也已存入到服务器数据库: