当前位置: 首页 > news >正文

影视网站设计论文重庆建设工程公司网站

影视网站设计论文,重庆建设工程公司网站,网站都需要备案吗,国内三大it外包公司文章目录 一、cookie与session的介绍HTTP四大特性 cookiesession Django操作cookie三板斧基于cookie的登录功能set_cookie 设置cookie 清空cookie设置cookie参数Django操作session设置session获取session清空sessionsession相关的参数设置过期时间 CBV添加装饰器 一、cookie与s… 文章目录 一、cookie与session的介绍HTTP四大特性 cookiesession Django操作cookie三板斧基于cookie的登录功能set_cookie 设置cookie 清空cookie设置cookie参数Django操作session设置session获取session清空sessionsession相关的参数设置过期时间 CBV添加装饰器 一、cookie与session的介绍 在讲之前我们先来回忆一下HTTP的四大特性 HTTP四大特性 1.基于请求响应 2.基于TIC、IP作用于应用层上的协议 3.无状态           保存客户端的装态 4.无连接 这篇文章要讲的就是跟“无状态”有关 最开始所有的网站都不需要用户注册登录所有人来访问到的数据都是一样的 但是随着互联网的发展很多网站需要知道当前用户的状态 cookie 保存在客户端与用户状态相关的信息这种信息都可以叫做cookie 最开始的cookie非常的不安全 session 保存在服务端与用户状态相关的信息session依赖于cookie工作 当然也可以不保存cookie在浏览器里设置阻止所有cookie当你设置了以后所有需要登录的网页都会登录不上去。 原理就是用户登录以后所有的相关信息都需要经过cookie服务器需要返回一些数据给cookie但是你的cookie被你关掉了就不会验证也就是令牌没有作用了所以不简易阻止所有cookie Django操作cookie 在Django中如何是用cookie 三板斧 return HttpResponse 返回字符串 return render 返回网页 return redirect 重定向obj HttpResponse return objobj render return objobj redirect return obj 操作cookie的时候就用到了这个obj对象基于cookie的登录功能 首先我们做一个简单的登录页面功能需要创建一个数据库从数据库匹配账户密码 models.py 创建数据库创建完别忘了做数据迁移 class Userinfo(models.Model):name models.CharField(max_length32)password models.IntegerField()tests.py 创建一些数据出来 import os import sysif __name__ __main__:os.environ.setdefault(DJANGO_SETTINGS_MODULE, day10.settings)import djangodjango.setup()from app01 import modelsbulk_list []for i in range(10000):user_obj models.Userinfo(namefkevin{i}, passwordf{i})bulk_list.append(user_obj)models.Userinfo.objects.bulk_create(bulk_list)set_cookie 设置cookie views.py 登录功能 def login(request):if request.method POST:print(request.POST)username request.POST.get(username) # 这里取到的是前端name的键password request.POST.get(password)userinfo models.Userinfo.objects.all() # 查询数据库的得到userinfo对象for i in userinfo: # 循环数据库里的数据if username i.name and password str(i.password): # 判断数据是否匹配print(登录成功)obj redirect(/index/) # 先实例化对象登录成功跳转页面obj.set_cookie(username, i.name, max_age60) # 让浏览器记录当前登录状态,max_age60这条记录只保存60秒60秒后删除return obj # 登录成功跳转页面else:return HttpResponse(密码错误)return render(request, login.html)login.html body form action methodpost用户名input typetext nameusername密码input typepassword namepasswordinput typesubmit /form /body这样一个简单的登录功能就创建出来了这个我们就可以在浏览器里看到cookie已经保存了一些数据 还可以做一个登录验证功能登录之后才能看到内容这里用到了装饰器 views.py def login_auth(func):def inner(*args, **kwargs): # 这里就已经接收到了request参数request args[0] # 将request从args中索引取值出来if request.COOKIES.get(username): # 如果cookies有值就不用再登陆return func(*args, **kwargs)else: # 否则需要登录验证return redirect(/login/) # 跳转到登录页面return innerlogin_auth # 添加登录功能装饰器 def index(request):if request.is_ajax():myfile request.FILES.get(myfile)import osdir_path os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 获取当前文件所在路径with open(dir_path /static/ myfile.name, wb) as f: # 将文件写到static文件夹下for i in myfile:f.write(i)return render(request, index.html, locals())清空cookie obj.delete_cookie(username)使用场景退出登录、注销 设置cookie参数 obj.set_cookie(username, i.name, max_age60)上面我们用到了三种参数分别是 ● key, 键 ● value’’, 值 ● max_ageNone, 超时时间 cookie需要延续的时间以秒为单位如果参数是\ None 这个cookie会延续到浏览器关闭为止 还有其他的一些参数 ● expiresNone, 超时时间(IE requires expires, so set it if hasn’t been already.)兼容IE浏览器可以在同时设置两种这样兼容了所有浏览器 ● path’/‘, Cookie生效的路径/ 表示根路径特殊的根路径的cookie可以被任何url的页面访问浏览器只会把cookie回传给带有该路径的页面这样可以避免将cookie传给站点中的其他的应用。 ● domainNone, Cookie生效的域名 你可用这个参数来构造一个跨站cookie。如 domain”.example.com”所构造的cookie对下面这些站点都是可读的www.example.com 、 www2.example.com 和an.other.sub.domain.example.com 。如果该参数设置为 None cookie只能由设置它的站点读取 ● secureFalse, 浏览器将通过HTTPS来回传cookie ● httponlyFalse 只能http协议传输无法被JavaScript获取不是绝对底层抓包可以获取到也可以被覆盖 Django操作session session的数据是保存在后端保存在后端的载体其实有很多种比如可以把数据保存在数据库、文件、Redis等 Django的默认保存位置在数据库中在django_session表中 设置session 成功设置一个seesion值有什么变化 会生成一个随机字符串 def set_session(request):![在这里插入图片描述](https://img-blog.csdnimg.cn/6bf1fb0033c44743a9713cd90627c514.png)request.session[username] kevin1return HttpResponse(set_session)2. 会把用户设置的信息保存到django_session中数据也做了加密处理 3. 把数据封装到了request.session里去了 Django后端把随机字符串保存到浏览器中后端的随机字符串中的也保存在浏览器中keysessionid 这个是候我们再多设置一个值的时候session_key是不变的变的是session_data在别的浏览器打开的是候会多增加一条但是一个浏览器只对应一条这样做的好处可以节省MySQL数据空间 获取session def get_session(request):print(request.session.get(username)) #kevin1 直接通过点语法获取return HttpResponse(get_session)获取session的时候发生了哪些事 浏览器先把sessionid回传到Django的后端 Django后端获取到了sessionid然后去数据表中根据session_key查询 如果查到了就说明之前已经登录过 如果查不到就返回None 查询出来的数据默认是加密的Django后端又把数据解密之后封装到request.session中 在取session值的时候就从request.session中取 session的过期时间默认是14天 清空session request.session.delete() # 清空session只删除服务端的数据不删除浏览器的 request.session.flush() # 清空前后端的session数据session相关的参数 request.session.values() # 拿出所有的value值 request.session.keys() # 拿出所有的key值 request.session.items() # 拿出所有的key值和value值设置过期时间 request.session.set_expiry(value)如果value是个整数session会在这些秒数后失效 如果value是个datatime或timedeltasession就会在这个时间后失效。 如果value是0用户关闭浏览器session就会失效 如果value是Nonesession会依赖全局session失效策略 CBV添加装饰器 现在我给CBV添加一个登录验证有三种方法 第一种 from django.utils.decorators import method_decoratormethod_decorator(login_auth, nameget) method_decorator(login_auth, namepost) class L_login(View):def get(self, *args, **kwargs):return HttpResponse(get)def post(self, *args, **kwargs):return HttpResponse(post)第二种 from django.utils.decorators import method_decoratorclass L_login(View):method_decorator(login_auth)def get(self, *args, **kwargs):return HttpResponse(get)method_decorator(login_auth)def post(self, *args, **kwargs):return HttpResponse(post)第三种 from django.utils.decorators import method_decoratorclass L_login(View):method_decorator(login_auth) # 加载dispatch上的装饰器会对下面的所有方法起作用def dispatch(self, request, *args, **kwargs):return super().dispatch(request, *args, **kwargs)def get(self, request):return HttpResponse(get)def post(self, request):return HttpResponse(post)一般第一种和第二种用的比较多
http://www.hkea.cn/news/14497051/

相关文章:

  • 有没有做美食的规模网站wordpress 字体颜色插件
  • 做ppt好的模板下载网站有哪些tg cd wordpress
  • 云南建设厅网站工程师电子商务网站建设与管理课程设计
  • 怎么申请自己的网站模板建站系统
  • 免费不良网站代码是多少邢台网站建设哪家公司好
  • 做房地产资质是什么网站查建筑培训网能发焊工证吗
  • 教育网站制作软件网站建设指南 读书心得
  • 做地暖工程的网站建立一个网站需要人员
  • 建设一个网站 需要提供什么网页制作官方网站
  • 网站策划书最后一步怎么做电商网站有哪些功能
  • asp.net网站运行助手google chrome浏览器
  • 网站index.php被修改百度快照是什么意思
  • 推荐大气的网站怎么登陆网站后台管理系统
  • 确实网站的建设目标ui设计与制作培训
  • 如何查询网站域名备案信息濮阳房产网站建设
  • 绿色食品网站模板.htm网络营销导向企业网站建设的一般原则是什么?
  • 找网站漏洞赚钱怎么做的做个网站怎么做
  • 语文建设网站成都百度推广优化创意
  • 网站后端开发湘潭建设企业网站
  • 重庆网站建设推广美工需要会哪些软件
  • 设计学网站温州seo网站推广
  • 漳州违法建设举报网站网络品牌推广策划方案
  • 营销网站建设选择什么是网站根目录
  • 博客网站网站的联系我们怎么做
  • 重庆网站制作建设微信公众号人工咨询电话
  • 整站优化关键词排名wordpress大淘客采集
  • 网页设计与网站建设中的热点是什么徐州做网站需要多少钱
  • 外贸网站建设教程眉山网站推广
  • 手机版网站制作模板织梦如何做中英文网站
  • 免费做网站空间郏县建设局网站