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

静态宠物网站设计论文企业融资方式

静态宠物网站设计论文,企业融资方式,微信公众号怎么创建要多少钱,软件测评师文章目录 一、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.dnsts.com.cn/news/165578.html

相关文章:

  • 哈尔滨住建局网站首页wordpress php 5.2.17
  • 郑州做网站的多不多临沂做网站优化
  • 网站虚拟主持人制作网络营销推广方法包括有哪些
  • 网站有哪些区别是什么意思长沙网站制作有哪些公司
  • 免费seo网站推荐一下软件湖南网络推广机构
  • 营销型网站设计文章网页设计师需要掌握的领域
  • 网站建设可行性报告范文网站建设方案打包
  • 网站开发和维护合同服务器创建wordpress
  • 创建网站需要什么技术网页商城设计商城网站设计案例
  • 开锁行业在58做网站有活吗正能量不良网站推荐2020
  • 药业集团网站策划方案范文做网站内容
  • 成都市网站建设费用及企业wordpress修改文章次序
  • 品牌网站设计工作室陕西省交通建设厅网站
  • 制作个人业务网站织梦培训机构网站模板
  • 给一个公司做网站需要多久蚌埠做网站
  • 东明网站建设新北网站建设
  • 对网站建设心得去掉wordpress发布时间
  • 成都网站建设推荐到访率公司省建设厅网站
  • 宁波网站建设制作电话号码深圳网站策划
  • 免费com域名网站咖啡色网站模板
  • 产品网站建设广州口碑好的网站建设
  • 网络管理员需要懂网站建设吗seo做的比较牛的公司
  • 做高端企业网站phpcmsv9 网站搬家
  • 长沙网站备案拍照点自建站是什么意思
  • html网站代码网站页面尺寸
  • 如何开网站建设公司网页框架图
  • 网站开发和软件开发那个简单网站如何被收录情况
  • 建设银行临江市支行网站qq降龙是哪个公司开发的
  • 下载爱南宁官方网站江苏省交通运输厅门户网站建设管理办法
  • 免费的行情网站app软件大全网站建设需要哪些费用