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

招聘网站分析如何做淄博优化公司

招聘网站分析如何做,淄博优化公司,关于淘宝店网站建设的可行性报告,网站建设那家做的好系列文章目录 Django入门全攻略#xff1a;从零搭建你的第一个Web项目Django ORM入门指南#xff1a;从概念到实践#xff0c;掌握模型创建、迁移与视图操作Django ORM实战#xff1a;模型字段与元选项配置#xff0c;以及链式过滤与QF查询详解Django ORM深度游#xff… 系列文章目录 Django入门全攻略从零搭建你的第一个Web项目Django ORM入门指南从概念到实践掌握模型创建、迁移与视图操作Django ORM实战模型字段与元选项配置以及链式过滤与QF查询详解Django ORM深度游探索多对一、一对一与多对多数据关系的奥秘与实践跨域问题与Django解决方案深入解析跨域原理、请求处理与CSRF防护Django视图层探索GET/POST请求处理、参数传递与响应方式详解还在写0.0… 文章目录 系列文章目录前言一、视图请求1.1 常见请求方式及特点1.2 GET请求处理1.3 POST请求处理 二、前端传参的方式2.1 查询参数2.2 路径参数2.3 请求头参数2.4 请求体参数 三、GET属性解析参数四、POST请求处理表单多值提交五、视图响应5.1 HttpResponse5.2 JsonResponse5.3 HttpResponse与JsonResponse区别总结5.4 render5.5 重定向概念及redirect 六、CBV类视图6.1 FBV、CBV 概念6.2 CBV路由映射方式6.3 CBV路由映射原理 前言 Django框架的视图层是连接用户与服务器逻辑的桥梁。本文将带您领略Django如何处理GET和POST请求、接收前端参数以及返回各种响应的奥秘。我们将探索查询参数、路径参数、请求头参数和请求体参数在请求中的作用并详细介绍HttpResponse、JsonResponse、render和redirect等响应方式。此外我们还将一窥基于类的视图CBV的魅力解析其与URL的映射关系及工作原理。 一、视图请求 1.1 常见请求方式及特点 视图函数一般用来接收一个Web请求HttpRequest之后返回一个Web响应HttpResponse 视图的组成 一个视图函数用来响应用户的Request请求每个视图函数默认的第一个位置参数request用来接收用户发起请求的HttpRequest信息。 视图函数的返回值为一个HttpResponse值包括我们要返回给用户的HTML页面或者字符串等等以及对应的头部字段信息 from django.http import HttpResponse def index(request):return HttpResponse(Hello world)get 和 post POST和GET是HTTP协议定义的与服务器交互的方法。 GET一般用于获取/查询资源信息POST一般用于更新资源信息PUT 一般用于修改数据DELETE一般用户删除数据 1.2 GET请求处理 常用来从指定地址请求数据如果需要在请求时提交某些数据则以路由形式传递参数查询Query字符串如下格式所示https://www.baidu.com/?keyabcposshanxi get用于获取数据get请求可被浏览器缓存保存在历史记录中get不应在使用敏感数据时使用明文暴露在请求地址中get有长度限制 1.3 POST请求处理 向指定的资源提交要被处理的数据使用POST提交的数据保存在HTTP协议中的消息主体部分 post用于提交数据post请求不会被浏览器缓存post提交数据长度无限制post比get更加安全 二、前端传参的方式 2.1 查询参数 通过在路径后面添加 来拼接参数如果有更多参数使用 符号拼接 示例 单个参数http://127.0.0.1:8000/?namezs 多个参数http://127.0.0.1:8000/?namezsage18height1.78后端获取参数方式 视图中request.GET 方法来获取所有传递数据返回的结果是querydict。 获取参数方式 单个参数获取querydict.get(key) 列表参数获取querydict.getlist(key)2.2 路径参数 请求参数直接跟在请求路径后的方式叫做路径参数 示例 http://127.0.0.1:8000/3/ 上面的3表示需要传递的数据就是路径参数类型是int类型也可以是str类型路由配置 urlpatterns [path(admin/, admin.site.urls),path(index/int:number,views.index) ] 此处int为类型number为参数名视图中获取路径参数 在视图request请求参数后添加需要接收的参数此处的参数就是路径中配置的参数名 def index(request, number):print(number)pass另外不仅可以使用path路由配置还可以使用re_path来配置自定义正则规则的路由 re_path(r^login/(1[3-9]\d{9})/$,login) 正则匹配手机号请求地址后需要携带手机号规则的参数2.3 请求头参数 # 获取请求头信息 request.META request.META dict request.META.get(HTTP_KEY) 注意的是header key必须增加前缀HTTP同时大写 例如你的key为username那么应该写成request.META.get(HTTP_USERNAME)2.4 请求体参数 请求体数据格式不固定可以是表单类型字符串可以是JSON字符串可以是XML字符串应区别对待。 可以发送请求体数据的请求⽅式有POST、PUT、PATCH、DELETE。 Django默认开启了CSRF防护会对上述请求⽅式进⾏CSRF防护验证在测试时可以关闭CSRF防护机制⽅法为在settings.py⽂件中注释掉CSRF中间件 跨域问题参考跨域问题与Django解决方案深入解析跨域原理、请求处理与CSRF防护 表单参数Form Data 数据获取request.POST.get(key) 非表单参数 传递格式json格式{name:张三,age:19} 接收方式数据包含在请求体中 def index(request):print(request.body)#将字节数据解码成json格式的字符串data request.body.decode()# 打印数据print(data) #纯字符串# 通过json.loads将字符串转为字典格式的数据dict_data json.loads(data)# 打印转换完以后数据print(dict_data)print(dict_data.get(name))return HttpResponse(响应数据)三、GET属性解析参数 def index(request):print(request.GET) # QueryDict: {name: [jack], id: [1]}print(type(request.GET)) # class django.http.request.QueryDictname_ request.GET.get(name)id_ request.GET.get(id)content %s:%s % (name_,id_)return HttpResponse(content)传参 http://127.0.0.1:8000/?namejackid1结果 jack:1四、POST请求处理表单多值提交 # 单选 radio 时 或者 使用选择框 select 时 request.POST.get(key, defaultNone) # 返回对应 key 值的数据中的最后一个数据单独返回key 值不存在取 default#真正拿出复选框checkbox提交的所有结果应该使用getlist函数 request.POST.getlist(key, defaultNone) # 将对应 key 值的所有数据以一个列表形式返回key 值不存在取 default 五、视图响应 5.1 HttpResponse HttpResponse返回json格式的字符串、任意类型的数据 响应的几种类型 1、将字符串或者html格式数据进行响应 from django.http import HttpResponse HttpResponse(contentb, status状态码 int, content_type内容类型 text/html)# content_type 学名: MIME类型-- 互联网传输文件的类型 # 类属性 status_code将字符串或者html格式数据进行响应 res HttResponse(hello world!, status200, content_typetext/html) res.status_code 300 return res 2、也可以构建json格式的数据进行响应最常用 json_str {name:json_data,age:18 }res HttpResponse(json_str, status200, content_typeapplication/json) return res3、构建文件类型作为响应测试使用真是开发中不建议如下使用,以下代码只做测试使用 from django.contrib.staticfiles import finders def responseview(request):image_path finders.find(img/shanhe.png)print(图片地址,image_path)with open(image_path, rb) as img_file:image_data img_file.read()# 设置响应内容类型和状态码response HttpResponse(image_data, content_typeimage/png)response.status_code 200return response5.2 JsonResponse JsonResponse:将python中的字典或者列表类型数据转成json格式的字符串并返回 from django.http import JsonResponse res JsonResponse({a:1, b:2})# 返回一个Json字符串 1. 将dict --转换json字符串 2. content_typeapplication/json5.3 HttpResponse与JsonResponse区别总结 用途HttpResponse用于构建任何类型的HTTP响应而JsonResponse专门用于构建JSON格式的响应。内容类型使用HttpResponse时你需要手动设置content_type。而JsonResponse则默认将content_type设置为application/json。数据序列化HttpResponse不会处理数据的序列化你需要提供已经格式化好的数据。而JsonResponse会自动将Python对象如字典或列表序列化为JSON格式。易用性对于返回JSON数据来说JsonResponse比HttpResponse更加方便和易用因为它减少了手动设置响应格式和编码的需求。 在大多数情况下当你需要返回JSON格式的数据时应该优先考虑使用JsonResponse。如果你需要返回其他类型的内容比如HTML或纯文本那么应该使用HttpResponse。 5.4 render 在Django中render()函数是用于渲染视图的常用方法。它能够将模板和上下文数据结合在一起生成最终的HTML响应。 from django.shortcuts import render render(request,template_name,contextNone,content_typeNone,statusNone) # 返回一个可渲染 HTML 页面状态码为 200request: 固定参数响应的 request 请求来自于参数部分接收的 HttpRequest template_name: 返回的模板页面路径 context: 模板页面渲染所需的数据默认为字典格式 content_type: 生成之后的结果使用的 MIME 类型 status: 响应的状态码默认为 2005.5 重定向概念及redirect 重定向分为永久重定向和临时重定向当浏览器访问的时候是否重新定向到新的资源地址。 永久重定向http的状态码是301多用于旧网址被废弃了要转到一个新的网址确保用户的访问最经典的就是京东网站你输入www.jingdong.com的时候会被重定向到www.jd.com因为jingdong.com这个网址已经被废弃了被改成jd.com所以这种情况下应该用永久重定向。临时重定向http的状态码是302表示页面的暂时性跳转。比如访问一个需要权限的网址如果当前用户没有登录应该重定向到登录页面这种情况下应该用暂时性重定向。 在Django中重定向是使用redirect(to, *args, permanentFalse, **kwargs)来实现的。 to是一个url地址permanent默认是False代表临时重定向设置为True代表永久重定向。 from django.shortcuts import redirect redirect(to, permanentFalse) # 一个重定向浏览器通过该状态码自动跳转到一个新的路由地址默认返回响应状态码 302to # 可以是一个 django 项目中视图函数的路由映射也可以是一个 reverse 的反向路由解析 permanent # 如果设置为 True将返回 301 状态码代表永久重定向302临时重定向旧地址资源临时不能用了搜索引擎只会暂时抓取新地址的内容而保存旧的地址。 301永久重定向旧地址资源已经不复存在搜索引擎不光会抓取新地址的内容还会替换旧地址为新地址六、CBV类视图 6.1 FBV、CBV 概念 FBV(function based views) 基于函数的视图, 即一个url对应一个视图函数需要在视图函数内通过reqeust.methed来获取对应请求类型进而进行请求类型的判断。 CBV(class based views) 就是在视图里使用类处理请求 django中还提供了一种方式叫做CBV在类中编写视图功能 并且将传统的get、post判断设置为了类中函数这样当用户发起不同的请求会自动进入到对应的类中函数上像是下面这样: from django.views import View class ArticleView(View):def get(self,request):raise Http404def post(self,request):if request.is_ajax():id_ request.POST.get(id_)result models.Article.objects.get(idid_).contentdata result.replace(\r\n,br) return HttpResponse(json.dumps(data,ensure_asciiFalse) )raise Http4046.2 CBV路由映射方式 路由映射配置path(article/,ajaxviews.ArticleView.as_view()) 路由设置时需要使用试图类的ArticleView.as_view()函数进行实例化和以前FBV有区别此外类中函数名请求方式必须为小写 6.3 CBV路由映射原理 用户访问时会经由View基类中的as_view - dispatch进行判断通过请求类型分发到不同对应请求的函数名下也就是通过get方式访问那么对应会调用到名为get的函数 通过将请求类型定义为函数可以更加方便进行请求方式判断
http://www.w-s-a.com/news/724175/

相关文章:

  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录
  • 学seo朝阳区seo
  • 网站开发团队成员皮具网站建设
  • 国外外贸需求网站响应式布局网页
  • 手机端便民服务平台网站建设昆明网络哪家好
  • 产品网站建设找哪家舟山信息港
  • 唐山网站建设汉狮怎么样seol英文啥意思
  • 深圳小程序网站开发公司网页制作模板视频教程
  • 电子商务网站开发开题报告wordpress更改后台地址
  • 网站静态前端是什么工作
  • 餐饮门户网站 方案怎么做创业好项目
  • 做百度手机网站推广普通话的宣传标语
  • 记事本可以做网站吗网站服务器是主机吗
  • 手机网站被拦截怎么办怎么解决东营建设信息网网
  • 外贸网站模板免费微信网站开发技术
  • 视频盗版网站怎么做福州网站seo
  • 成都金铭 网站建设做网站包含的技术