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

广州广告公司排行榜湖南专业关键词优化服务水平

广州广告公司排行榜,湖南专业关键词优化服务水平,工程建设的基本步骤,外销网站有哪些文章目录 一、用户认证系统二、案例#xff1a;登陆认证2.1 平台登入2.2 平台登出2.3 login_required装饰器 三、Django Session管理3.1 Django使用Session3.1.1 Cookie用法3.1.2 Session用法 3.2 案例#xff1a;用户登录认证 四、Django CSRF安全防护机制 一、用户认证系统… 文章目录 一、用户认证系统二、案例登陆认证2.1 平台登入2.2 平台登出2.3 login_required装饰器 三、Django Session管理3.1 Django使用Session3.1.1 Cookie用法3.1.2 Session用法 3.2 案例用户登录认证 四、Django CSRF安全防护机制 一、用户认证系统 Django内置一个用户认证系统使用auth模块实现。auth模块提供了登录、注册、效验、修改密码、注销、验证用户是否登录等功能。 Django默认创建的数据库表。 表名作用auth_user用户表auth_user_groups用户所属组的表auth_user_user_permissions用户权限表auth_group用户组表auth_group_permissions用户组权限表auth_permission存放全部权限的表其他的表的权限都是从此表中外键连接过去的django_session保存HTTP状态django_migrations数据库迁移记录 二、案例登陆认证 2.1 平台登入 1.登陆成功进入平台首页登陆失败返回错误信息。 ################################################### 1、定义url路由规则ORM/urls.py文件。 from django.contrib import admin from django.urls import path,include,re_path from ORM import views urlpatterns [path(admin/, admin.site.urls),re_path(^$,views.home),path(myapp/,include(myapp.urls)),path(login/,views.login) ] ################################################### 2、定义视图ORM/views.py文件。 from django.shortcuts import render,HttpResponse,redirect from django.contrib import auth def home(request):return render(request,index.html) def login(request):if request.method GET:return render(request, login.html)elif request.method POST:username request.POST.get(username)password request.POST.get(password)user auth.authenticate(usernameusername, passwordpassword)if user:##验证通过后将session信息保存到数据库中。auth.login(request, user) return redirect(/)else:msg 用户名或密码错误return render(request,login.html,{msg:msg}) ################################################### 3、定义html模板templates/login.html !DOCTYPE html html langen headmeta charsetUTF-8title管理后台页面/title /head body ht欢迎访问管理后台/ht form action methodpost用户名 : input typetext nameusernamebr密码 : input typetext namepasswordbrbutton typesubmit登录/buttonspan stylecolor: red{{ msg }}/span /form /body /html ################################################### 4、平台首页渲染模板templates/index.html新增”退出登录“按钮。 !DOCTYPE html html langen headmeta charsetUTF-8title平台首页/title /head body h1网站首页/h1 a href/logoutbutton退出登录/button/a /body /html2.进入django管理后台新增一个测试用户xiaoming添加auth权限。 3.测试效果。 2.2 平台登出 就是清空django_session表中记录的用户登录状态信息若数据存在该表中则认定处于登陆状态删除数据则认定登出。 1.退出登录返回到登陆页面。 ################################################### 1、定义url路由规则ORM/urls.py文件。 from django.contrib import admin from django.urls import path,include,re_path from ORM import views urlpatterns [path(admin/, admin.site.urls),re_path(^$,views.home),path(myapp/,include(myapp.urls)),path(login/,views.login),path(logout/,views.logout), ##新增url ] ################################################### 2、新增视图ORM/views.py文件。 def logout(request):# 清除当前用户的session信息auth.logout(request)return redirect(/login)2.3 login_required装饰器 login_required装饰器判断用户是否登录如果没有登录引导至登录页面登录成功后跳转到目的页面。 1.在settings.py文件设置没有登录默认跳转页面。 ##文件末尾添加。 LOGIN_URL /login/2.在需要登录后才能访问页面的视图添加装饰器。 from django.contrib.auth.decorators import login_requiredlogin_required() ##语法糖引用装饰器。 def user_add(request):............3.效果验证。 三、Django Session管理 Session与Cookie是什么? 网站采用是HTTP协议它本身就是一个无状态的记不住我们上次来浏览器上做了什么事。这时服务器给每个用户贴了一个小纸条上面记录了服务器给我们返回的一些信息。后面服务器看到这张小纸条就知道我们是谁了。这个小纸条就是Cookie。 Cookie工作原理 浏览器第一次访问服务器时服务器此时肯定不知道它的身份所以创建一个独特的身份标识数据格式为keyvalue放入到Set-Cookie字段里随着响应报文发给浏览器。浏览器看到有Set-Cookie字段以后就知道这是服务器给的身份标识于是就保存起来下次请求时会自动将此keyvalue值放入到Cookie字段中发给服务器。服务器收到请求报文后发现Cookie字段中有值就能根据此值识别用户的身份然后提供个性化的服务。 Session的作用 试想一下如果将用户账户的一些信息都存入Cookie中的话一旦信息被拦截那么所有的账户信息都会可能被泄露丢这是不安全的。所以就出现了Session在一次会话中将重要信息保存在Session中浏览器只记录SessionId一个SessionId对应一次会话请求。 3.1 Django使用Session 3.1.1 Cookie用法 在settings.py配置文件中设置客户端Cookie。 参数描述SESSION_COOKIE_NAME “sessionid”Session的cookie保存在浏览器上时的key即sessionid随机字符串默认SESSION_COOKIE_PATH “/”Session的cookie保存的路径默认SESSION_COOKIE_DOMAIN NoneSession的cookie保存的域名默认SESSION_COOKIE_SECURE False是否Https传输cookie默认SESSION_COOKIE_HTTPONLY True是否Session的cookie只支持http传输默认SESSION_COOKIE_AGE 1209600Session的cookie失效日期2周默认SESSION_EXPIRE_AT_BROWSER_CLOSE False是否关闭浏览器使得Session过期默认SESSION_SAVE_EVERY_REQUEST False是否每次请求都保存Session默认修改之后才保存默认 1.设置Cookie过期时间单位s。 ##ORM/settings.py文件末尾添加此行。 SESSION_COOKIE_AGE 30*602.设置关闭浏览器使得Session过期。 ##ORM/settings.py文件末尾添加此行。 SESSION_EXPIRE_AT_BROWSER_CLOSE True3.1.2 Session用法 在视图中操作Session。 参数描述request.session[‘key’] value向Session写入键值request.session.get(‘key’,None)获取Session中键的值request.session.flush()清除Session数据request.session.set_expiry(value)Session过期时间 1.自定义向Session写入键值前端可以拿到该value值。 3.2 案例用户登录认证 1.自己实现登陆验证功能。 ############################################################################ ##根据上文内容将login接口试图修改成如下内容。 def login(request):if request.method GET:return render(request, login.html)elif request.method POST:username request.POST.get(username)password request.POST.get(password)if username qingjun and password citms123:#登录成功is_login设置为Truerequest.session[is_login] True request.session[ username] username #保存用户名到数据库。return redirect(/)else:msg 用户名或密码错误 !return render(request,login.html,{msg: msg})############################################################################ 1、定义装饰器可以给其他视图引用新增文件ORM/main.py。 from django.shortcuts import render,HttpResponse,redirect def self_login_required(func):def inner(request):is_login request.session.get(is_login, False)if is_login:return func(request)else:return redirect(/login)return inner ############################################################################ 2、引用装饰器。 from ORM.main import self_login_required self_login_required def home(request):return render(request, index.html)2.查看效果。 四、Django CSRF安全防护机制 概念 CSRFCross Site Request Forgery跨站请求伪造实现的原理是CSRF攻击者在用户已经登录目标网站之后诱使用户访问一个攻击页面利用目标网站对用户的信任以用户身份在攻击页面对目标网站发起伪造用户操作的请求达到攻击目的。 Django怎么验证一个请求是不是CSRF Django处理客户端请求时会生成一个随机Token放到Cookie里一起返回然后需要前端每次POST请求时带上这个Token可以放到POST数据里键为csrfmiddlewaretoken或者放到请求头键为X-CSRFTokenDjango从这两个位置取每次处理都会拦截验证通过比对两者是否一致来判断这个请求是不是非法非法就返回403状态码。 可以携带CSRF Token发送给服务端的方法 from表单添加{% csrf_token %}标签表单会携带一同提交。如果你是Ajax请求需要把csrf token字符串也是通过拿{% csrf_token %}标签产生的值放到data里一起提交并且键名为csrfmiddlewaretoken或者放到请求头传递服务端。指定取消某函数视图CSRF防护。 1.Django默认启用CSRF保护机制当有post请求时就会被拦截。 2.此时可以给html模板中添加csrf标签浏览器可以其值与表单一起提交给服务端。 3.还有其他两种方式。 ########################################################## 方式2不建议使用建议在html模板中添加标签方式返回。 from django.views.decorators.csrf import csrf_exempt csrf_exempt def index(request): return render(request, index.html) ########################################################## var csrf_token $([namecsrfmiddlewaretoken]).val(); var data {id: 123, csrfmiddlewaretoken: csrf_token}; $.ajax({type: POST,url: /api,data: data,dataType: json })
http://www.hkea.cn/news/14400990/

相关文章:

  • 网站定制哪家正规北京时事新闻
  • 滨州内做网站系统的公司网站关键词优化到首页后怎么做
  • 重庆市建设厅官方网站怎样做网站设计
  • 网站手机模板源码电子插件加工厂生产线
  • 网站备案当面核验上海品牌网站建设公司排名
  • ps网站切图教程资源最多的磁力搜索引擎
  • 宜昌外贸网站建设优化推广开原网站建设
  • 湘潭网站建设 沟通磐石网络广州软件开发外包
  • 网站登录验证码显示不出来百度手机关键词排名工具
  • 长沙网站建设推荐wordpress设置页面加载
  • 做任务领佣金的网站源码合肥网站排名推广
  • 网站建设合同需要印花税免费行情网站大全下载
  • 网站查询是否安全广州网站建设网站制作公司
  • 营销型网站设计方案郴州网站优化
  • 女的男的做那个视频网站学做简单网站
  • 网站欢迎页制作江阴网站建设
  • 笑话 语录用什么网站做新时代文明实践站模板
  • 南宁网站快江苏建设工程造价管理网站
  • 网站建设公司怎样拓展网站业务网站推广每天必做的流程
  • 网站建设网站设秦皇岛海三建设工程集团
  • 四川省住房建设厅网站打不开大连制作网站企业
  • 做手机网站多少钱网站首页图片怎么做
  • 微网站建设及微信推广方案wordpress怎么恢复
  • 企业网站开发软件建设工程造价信息网官网
  • 可信网站验证服务中心六安人论坛
  • 罗湖企业网站建设北仑网站网页建设
  • 自适应网站会影响推广系统维护一般要多长时间
  • wordpress的固定链接如何设置网站优化方案范文
  • 网站代理协议公司网站静态模板
  • 骏域网站建设做网站有没有免费空间