咸鱼笔记—Cookie和session
·
新手刚接触python,跟着教程学的,笔记是为了把我学到的知识梳理一遍,仅供参考。欢迎各路大神指点。
学习版本: Django 1.8. Python 3.5
Cookie

cookie是由服务器生成,存储在浏览器端的一小段文本信息。
cookie的特点:
1)以键值对方式进行存储。
2)通过浏览器访问一个网站时,会将浏览器存储的跟网站相关的所有cookie信息发送给该网站的服务器。request.COOKIES
3)cookie是基于域名安全的。
4)cookie是有过期时间的,如果不指定,默认关闭浏览器之后cookie就会过期。
应用案例cookie:记住用户名。安全性要求不高。
views.py
def index(request):
return render(request,'booktest/index.html')
def login(request):
if 'username' in request.COOKIES: #如果用户名在cookie中
username = request.COOKIES['username'] #调用
else:
username = '' #保存
return render(request,'booktest/login.html',{'username':username})
def login_check(request):
username = request.POST.get('username')
password = request.POST.get('password')
remember = request.POST.get('remember') #获取点击状态
if username== '123' and password =='123':
response = redirect('/index')
if remember == 'on': #如果勾选“记住用户名”
response.set_cookie('username',username,max_age=7*24*3600) #获取输入的用户名存到cookie 中
return response
else:
return redirect('/login')
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录案例</title>
</head>
<body>
<form action="/login_check" method="post">
用户名 <input type="text" name="username" value="{{username}}">
密码 <input type="password" name="password"><br/>
<input type="checkbox" name="remember">记住用户名
<input type="submit" value="登录">
</form>
</body>
</html>
urls.py
from django.conf.urls import include,url
from bookinfo import views
urlpatterns = [
url(r'^index$', views.index),
url(r'^login$', views.login),
url(r'^login_check$', views.login_check),
效果

刷新页面

session

session存储在服务器端。
session的特点:
-
session是以键值对进行存储的。
-
session依赖于cookie。唯一的标识码保存在sessionid cookie中。
-
session也是有过期时间,如果不指定,默认两周就会过期。

使用session 记录账户密码 正确 。刷新后直接跳转到index
def index(request):
return render(request,'booktest/index.html')
def login(request):
if request.session.has_key('islogin'):
return redirect('/index')
else:
if 'username' in request.COOKIES:
username = request.COOKIES['username']
else:
username = ''
return render(request,'booktest/login.html',{'username':username})
def login_check(request):
username = request.POST.get('username')
password = request.POST.get('password')
remember = request.POST.get('remember')
if username== '123' and password =='123':
response = redirect('/index')
if remember == 'on':
response.set_cookie('username',username,max_age=7*24*3600)
request.session['islogin'] = True
return response
else:
return redirect('/login')
错误信息 (1146, “Table ‘bj18.django_session’ doesn’t exist”)
1、注释setting.py中

2、控制台输入 python manage.py syncdb

3、取消setting.py中的注释
成功

session:涉及到安全性要求比较高的数据。银行卡账户,密码
更多推荐
所有评论(0)