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

集团高端网站建设怎么建网站做

集团高端网站建设,怎么建网站做,快速建站费用,去哪儿旅行app下载安装文章目录 Django视图函数1.request对象的方法2.视图函数的常用的返回对象#xff08;1#xff09;response对象#xff08;2#xff09;JsonResponse对象#xff08;3#xff09;redirect() #xff1a;给浏览器了一个30x的状态码 3.设置响应头和状态码#xff08;11response对象2JsonResponse对象3redirect() 给浏览器了一个30x的状态码 3.设置响应头和状态码1设置响应头键值对2设置响应状态码 4.CBV模式1CBV模式写法先引入类2CBV模式下传参 Django视图函数 Django中一个视图函数类简称视图是一个简单的Python 函数类它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容一个重定向一个404错误一个XML文档或者一张图片。 无论视图本身包含什么逻辑都要返回响应。大家约定成俗将视图放置在项目project或应用程序app目录中的名为views.py的文件中。 视图读取参数 url以查询字符串的方式传参,使用request.GET.get(“name”, default)的形式获取参数值 url以路径传参使用路径转换器来进行获取参数在django1.0版本的时候只能通过正则表达式来获取参数。 1.request对象的方法 request.GET获取url中的查询字符串的数据 request.POST: 获取表单提交的数据 request.path获取请求的路径 request.method获取请求的方法得到的值是 请求方法GET or POST等 大写 request.COOKIES:获取请求过来的cookies request.user:获取请求的用户对象可以通过它判断用户是否登录并获取用户信息 request.session一个既可读又可写的类似字典的对象表示当前会话 request.META:一个标准的Python字典包含所有的HTTP首部。具体的头部信息取决于客户端和服务器 #request.META 字典类型数据,所有的请求头的键都加上了一个HTTP_键名称 print(request.get_full_path()) #当前请求路径包含查询参数 request.encoding 一个字符串表示提交的数据的编码方式如果为 None 则表示使用 DEFAULT_CHARSET 的设置默认为 ‘utf-8’。 这个属性是可写的你可以修改它来修改访问表单数据使用的编码。 接下来对属性的任何访问例如从 GET 或 POST 中读取数据将使用新的 encoding 值。 如果你知道表单数据的编码不是 DEFAULT_CHARSET 则使用它。 request.GET 获取查询参数#不管是post或get请求当url中含有查询参数时要在后台的request对象中获取查询参数 用的属性都是request.GET 浏览器输入查询参数 a1b“景浩” 获取的字典值是列表类型 print(request) 获取的是WSGIRequest对象 2.视图函数的常用的返回对象 HttpResponse对象可以直接返回一些字符串 render: 将数据在模板中渲染并显示使用方式为return render(request, template_path, {k:v})字典中key与value就是要向前端渲染出的数据。 JsonResponse返回一个json类型通常用于与前端进行ajax交互 1response对象 属性 HttpResponse.content响应内容 HttpResponse.charset响应内容的编码 HttpResponse.status_code响应的状态码 2JsonResponse对象 JsonResponse是HttpResponse的子类专门用来生成JSON编码的响应。  class JsonResponse(data, encoderDjangoJSONEncoder, safeTrue, json_dumps_paramsNone,**kwargs) 这个类是HttpRespon的子类它主要和父类的区别在于 1.它的默认Content-Type 被设置为 application/json 2.第一个参数data应该是一个字典类型当 safe 这个参数被设置为False ,那data可以填入任何能被转换为JSON格式的对象比如list, tuple, set。 默认的safe 参数是 True. 如果你传入的data数据类型不是字典类型那么它就会抛出 TypeError的异常。 3.json_dumps_params参数是一个字典,它将调用json.dumps()方法并将字典中的参数传入给该方法。 使用HttpResponse对象来响应数据的时候还可以通过content_type指定格式 return HttpResponse(json.dumps(data),content_type“application/json”) 默认只能传递字典类型如果要传递非字典类型需要设置一下safe关键字参数。 response JsonResponse([1, 2, 3], safeFalse) 3redirect() 给浏览器了一个30x的状态码 参数可以是 1. 一个模型将调用模型的get_absolute_url() 函数 2.一个视图可以带有参数将使用urlresolvers.reverse 来反向解析名称 3.一个绝对的或相对的URL将原封不动的作为重定向的位置。 默认返回一个临时的重定向传递permanentTrue 可以返回一个永久的重定向。 示例: 你可以用多种方式使用redirect() 函数。 传递一个具体的ORM对象了解即可 将调用具体ORM对象的get_absolute_url() 方法来获取重定向的URL 301 redirect: 301 代表永久性重定向 网址永久地迁移了原网址下的资源都没有了 302 redirect: 302 代表临时重定向 临时的做个跳转项目可能在升级原网址资源还在 重定向案例 首先在url里面新添加一个用来重定向的路径 建个新页面 视图函数里面添加跳转视图函数new()并在login2路径下用户输入用户名jinghao 即重定向到 /new/ 新页面 redirect里面写的第一个参数为路径可以添加第二个参数permanentTrue,表示永久重定向。默认是临时重定向 浏览器访问输入用户名jinghao实现跳转 永久重定向 3.设置响应头和状态码 理论上客户端发来请求服务端应根据响应的成功与否发送给客户端相关的状态码 服务器报错也应该返回状态码告诉客户端是什么错误 响应对象主要有三种形式 HttpResponse() 回复字符串 默认响应状态码是200 render() 回复页面内容 默认响应状态码是200 redirect() 重定向 默认响应状态码是302 如果发生什么问题比如经过各种逻辑判断逻辑有误参数不对等服务端此时应该回复异常的状态码 1设置响应头键值对 def code(request): ret HttpResponse(“状态码”) ret[‘name’] “jinghao” # 添加响应头键值对 #会调用HttpResponse setattr方法在setattr()方法中对响应头键值对进行了封装 return ret 浏览器访问查看 响应数据在前端都能拿到拿出来就可以做一些处理 比如用户名密码认证成功之后比如加个键值对 isLoginTrue 响应头在客户端拿到以后再登录某个页面之后可以携带这个数据后台拿到这个数据之后就知道该用户已经登录了不用重新登录 2设置响应状态码 #设置状态码 def code(request): ret HttpResponse(“状态码”) ret[‘name’] “jinghao” # 添加响应头键值对 #HttpResponse setattr ret.status_code 404 # 修改状态码 return ret 正常状态下不需要设置状态码但为了接口规范一些情况下需要设置状态码 render HttpResponse Redirect 三种响应方式都可以修改响应状态码 4.CBV模式 FBVfunction base views 就是在视图里使用函数处理请求。 之前都是FBV模式写的代码所以就不写例子了。 CBVclass base views 就是在视图里使用类处理请求。 Python是一个面向对象的编程语言如果只用函数来开发有很多面向对象的优点就错失了继承、封装、多态。 所以Django在后来加入了Class-Based-View。可以让我们用类写View。 这样做的优点主要下面两种 提高了代码的复用性可以使用面向对象的技术比如Mixin多继承 可以用不同的函数针对不同的HTTP方法处理而不是通过很多if判断提高代码可读性 如果用class-based view写的话就是下面这样 1CBV模式写法先引入类 from django.views import View #自己写的类要继承View类 class BookView(View): # 通过反射获取到请求方法对应的类中的方法来执行 #需要什么类型的请求。就定义什么方法比如get,post方法名固定 def get(self,request): return HttpResponse(‘book’) # 需要处理什么请求方法,就写对应名称的方法 根据其继承的类我们可以看到原码中支持的八种方法类型我们在类中写的方法必须是这八种方法其中的一种不然会报错 Django的url是将一个请求分配给可调用的函数的而不是一个class。 针对这个问题class-based view提供了一个as_view()静态方法也就是类方法调用这个方法会创建一个类的实例 然后通过实例调用dispatch()方法dispatch()方法会根据request的method的不同调用相应的方法来处理request如get() , post()等。 到这里这些方法和function-based view差不多了要接收request得到一个response返回。如果方法没有定义会抛出HttpResponseNotAllowed异常。 原码部分 def dispatch(self, request, *args, **kwargs):# Try to dispatch to the right method; if a method doesnt exist,# defer to the error handler. Also defer to the error handler if the# request method isnt on the approved list.if request.method.lower() in self.http_method_names: #get# [get, post, put, patch, delete, head, options, trace]handler getattr(self, request.method.lower(), self.http_method_not_allowed)else:handler self.http_method_not_allowedreturn handler(request, *args, **kwargs) 就是get # HttpResponse(ok)dispatch方法就是为了获取我们在类中写的方法然后返回方法执行返回结果 注意使用CBV时urls.py中也做对应的修改from django.contrib import admin from django.urls import path from login import viewsurlpatterns [path(admin/, admin.site.urls),path(, views.login),# path(login/, views.login),# path(logininfo/, views.logininfo),path(login2/, views.login2),path(new/, views.new),path(code/, views.code),path(book/, views.BookView.as_view()), 注意这里是views.类名.as_view() ]我们继承的类View类中有as_view方法 浏览器访问 2CBV模式下传参 创建个文章类 使用get方法 如果想看2018年的文章 urls.py路径需要配置year是变量名需要再视图函数里面传进去 views视图函数需要传参year 浏览器访问 article/后面只要是个int类型的数字数字都可以访问 使用post方法提交表单post方法也要传参 form表单使用post方法在当前页面提交 浏览器显示 输入一个用户名提交 后端可以通过request.POST获取提交数据。获取的是QueryDict字典类型字典的值是列表
http://www.zqtcl.cn/news/160092/

相关文章:

  • php网站忘记后台密码江苏网页制作报价
  • 网站模板 哪个好完备的常州网站推广
  • 衡水淘宝的网站建设濮阳市城乡一体化示范区主任
  • 公司网上注册在哪个网站商洛市商南县城乡建设局网站
  • 怎么才能让网站图文展示大连网站建设设计
  • 俱乐部网站 模板seo产品是什么意思
  • 新手学做网站的教学书建造师查询官网
  • win2012 iis添加网站群辉做网站服务器
  • 网站优化课程培训山东网站备案公司
  • top wang域名做网站好事业单位门户网站建设评价
  • 有什么网站可以做简历网站备案表格
  • 网站开发用什么图片格式最好厦门人才网个人会员
  • 关于网站开发的文献深圳网络推广代运营
  • 网站做app的重要性做静态网站有什么用
  • 一键搭建网站系统教做衣服的网站有哪些
  • 城乡建设部网站施工员证书查询中铁建设集团有限公司招标平台
  • 广东省建设项目安全标准自评网站哪个网站可以免费做简历
  • 带产品展示的个人网站模板购物网站开发背景
  • 哪个域名注册网站好seo广告投放是什么意思
  • 网站建设ydwzjs电子邮箱怎么申请
  • 福建省建住房建设部网站wordpress 算数验证码
  • 东莞企业如何建网站网站正在建设中...为什么护卫神
  • 引流用的电影网站怎么做wordpress浏览速度
  • 微信小程序怎拼做搬家网站东莞建网站公司
  • 网站推广昔年下拉博客推广链接制作软件
  • php 小企业网站 cmswordpress导航分类
  • 婚恋网站女孩子都是做美容免费空间最大的网盘
  • 建立网站要钱吗找人做网站需求怎么写
  • 网站建设精品课程电商运营主要负责什么
  • 中职网站建设与维护考试题wordpress商店会员管理