1.出现的问题:
配置环境,修改了文件名,环境变量要跟着改,安装django模块,通过pycharm里面的setting—》project from—>+.
http协议特点:
无状态保持:为了保证快速访问,http协议设定不保存状态。 出现的问题:无法识别客户端的身份
2.cookie: https://www.cnblogs.com/yuanchenqi/articles/9036467.html:
cookie又服务器写,浏览器保存cookie
大小为4kB,一个服务器最多在浏览器上保存20个cookie
一个浏览器最多保存300cookie
obj=HttpResponse(‘ok’)/render/redirect
obj.set_cookie(‘username’,user)
obj.set_cookie(‘is_login’,True,path=)
return obj
3session
一个服务端,一个客户端只能建立一条状态信息,既用户只能是一个。(怎样伪造多个客户端?)
设置session:
requset.session[“username”]=“user”
requset.session.get(“username”)
del request.session[“username”]
request.session.flush()
session_key session_data
jq 小技巧: $(":randio") 等同于 $("[name=‘randio’]")–>通用写法 input的属性选择器
4.用户认证组件: 中间件,在setting里面设置
特点: 使用django自带的用户表 auth_user —>密文储存
插入记录的命令: python manage.py createsuperuser
1.auth.authenticate(username=user,password=pwd)----->去指定的auth_user表里过滤()内的内容
user_obj=auth.authenticate(username=user,password=pwd)
2.auth.login(request,user_obj)------->使用session,进行登陆
3.auth.logout(request)------>注销
4.User.objects.create_user(username=user,password=pwd)----->在auth_user用户表里添加数据
5 user=User.objects.get
5.中间件: ‘django.contrib.auth.middleware.AuthenticationMiddleware’:认证用户是否存在,auth_user库中,没有就认证为匿名用户.
中间件特点: 任何请求都会通过中间件:
中间件的流程: 请求1(process_request)—>请求2—>路由—>视图函数—>返回2(process_response)---->返回1
中间件的设置 setting.py里面MIDDLEWARE
中间件设置-白名单:
if request.path in [’/index/’]:
return None
中间件的其他方法(在csrf.py里面):
process_view:路由分发(request)之后进行,视图函数之前
process_exception:视图函数出错后,执行。response之前
应用;
1.防止一个客户端多次访问(访问网站里面的任何数据):
检测ip地址 :
做统计次数/时间 :计算时间戳
超过,就阻止访问 :
2.在中间件加入session认证。—>(节省代码)
作业:
1.*******防止客户端多次访问:
2.源码试读
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
3.白名单:
累积出来的任务: