一.视图函数view

  视图函数是接收一个请求(request对象),并返回响应的函数

  1. HttpResponse响应请求

    这个方法是返回字符串一类的,可以识别标签

  2. render响应请求

    render(request,".html",[**kwargs]),返回一个html页面,参数可以传给html中需要渲染的变量

  3. redirect响应请求

    redirect(reverse("url"),[*args]),重定向跳转到一个页面

二.CBV和FBV

  1. FBV function base views

    在视图函数中使用函数处理请求

  1. def index(request):
  2. return HttpResponse("ok")

简单的FBV

  2. CBV class base views

    在视图函数中使用类处理请求

  1. from django.views import View
  2. class MyView(View):
  3. name = "xxx" # 这是分组传来的参数
  4. def post(self,request):
  5. return HttpResponse("post")
  6. def get(self,request):
  7. return HttpResponse("get")
  8.  
  9. urls.py配置
  10. from app.views import MyView
  11.  
  12. url(r"正则",MyView.as.view(name="xxx"))

简单的CBV

三. 给视图函数加装饰器

  1. 给FBV加装饰器

  1. def wrapper(fn):
  2. def inner(*args,**kwargs):
  3. print("before")
  4. ret = fn(*args,**kwargs)
  5. print("after")
  6. return ret
  7. return inner
  8.  
  9. @wrapper
  10. def index(request):
  11. return HttpResponse("ok")

FBV装饰器

  2. 给CBV加装饰器

  1. from django.views import View
  2. from django.utils.decorators import method_decorator
  3.  
  4. def wrapper(fn):
  5. def inner(*args,**kwargs):
  6. print("before")
  7. ret = fn(*args,**kwargs)
  8. print("after")
  9. return ret
  10. return inner
  11.  
  12. @method_decorator(warrper,name="get") #第一种
  13. class MyView(View):
  14. name = "xxx" # 这是分组传来的参数
  15.  
  16. # 这个是分发post,get请求的,也可以用作装饰器
  17. def dispatch(self,request,*args,**kwargs):
  18. print("before")
  19. ret = super().dispatch(request,*args,**kwargs):
  20. print("after")
  21. return ret
  22.  
  23. @method_decorator(warrper) # 第二种
  24. def post(self,request):
  25. return HttpResponse("post")
  26. def get(self,request):
  27. return HttpResponse("get")
  28.  
  29. urls.py配置
  30. from app.views import MyView
  31.  
  32. url(r"正则",MyView.as.view(name="xxx"))

CBV装饰器

四. request对象

  request.method  请求方式

  request.GET    get请求的所有数据,是一个字典

  request.POST     post请求的所有数据,是一个字典

  request.path    请求路径

  request.get_full_path()  获取带有参数的路径

  request.META()      请求头信息,是一个字典

五. response对象

  HttpSponse("xxx")    响应一个字符串,可以识别标签

  render(request,".html"[**kwargs])  响应一个页面,参数可以渲染页面中需要的

  redirect()       重定向,跳转到一个页面

django的视图函数的更多相关文章

  1. Django之视图函数总结

    Django之视图函数总结 HttpRequest与HttpResponse http请求中产生两个核心对象: HttpRequest对象:用户请求相关的所有信息(对象) HttpResponse对象 ...

  2. django views视图函数返回值 return redirect httpresponse总结

    django views视图函数返回值 return redirect  render httpresponse总结

  3. Django 定义视图函数

    Django 定义视图函数 一.接收内容及文件处理 1.接收分类 # 获取数据 request.GET # 提交数据 request.POST # 获取文件 request.FILES 2.check ...

  4. 03 Django之视图函数

    一.Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受WEB请求并返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  5. Django restframe 视图函数以及ModelSerializer的使用

    建立model数据库 from django.db import models __all__ = ['Book', 'Publisher', 'Author'] # Create your mode ...

  6. Django的视图函数和路由系统中一些没有用过的小点

    1.request对象 print("返回用户访问的url,但是不包括域名",request.path_info) print("返回请求的方法,全大写",re ...

  7. django views视图函数

    Django views.py视图文件 一. 创建views.py文件,在工程文件夹根目录创建views.py视图文件,其实任意文件名都可以,使用views是为了遵循传统. 注:所有的views函数都 ...

  8. Django中非视图函数获取用户对象

    今天遇到了一个问题:在Django中怎么从非视图函数中获取用户对象?怎么保证不同的请求获取到不同的用户对象? 平常我们获取用户对象使用的是: request.user 不得不说,这确实很方便. 但是, ...

  9. django中视图函数的FBV和CBV

    1.什么是FBV和CBV FBV是指视图函数以普通函数的形式:CBV是指视图函数以类的方式. 2.普通FBV形式 def index(request): return HttpResponse('in ...

随机推荐

  1. Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo

    Linux,最早由Linus Benedict Torvalds在1991年开始编写.在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及 ...

  2. SQL Server扩展事件的使用ring_buffer target时“丢失”事件的原因分析以及ring_buffer target潜在的问题

    事情起因: 排查SQL Server上的死锁问题,一开始想到的就是扩展事件, 第一种方案,开profile守株待兔吧,显得太low了,至于profile的变种trace吧,垂垂老矣,也一直没怎么用过. ...

  3. Post返回json中文乱码

    来源:http://blog.csdn.net/xiaoxuonl/article/details/54315612 服务器返回的是utf-8,jsp页面上也是utf-8,数据库也是utf-8怎么就是 ...

  4. jenkins grunt 自动构建流程

    1. grunt生成的压缩文件不建议上传到svn,src里的源码和grunt,npm的配置文件保存在svn里就够了2. grunt有watch任务,src里的文件改变了可以自动执行任务,比如压缩,3. ...

  5. ARTS打卡计划第一周-Tips-ControllerAdvice的使用

    通常在开发具体项目过程中我们可能会面临如下问题: 统一所有的json返回结果 统一处理所有controller中的异常,并且给不同异常不同的返回状态值 统一对返回的接口做数据校验或者加密,防止篡改 在 ...

  6. C++ 数组和字符串

    数组和字符串的基本知识 目录 一.数组的声明 二.字符串 一.数组的声明 1.1.存储在每个元素中的值得类型: 1.2.数组名: 1.3.数组中的元素数. ];//short 数组元素值的类型,a数组 ...

  7. unity中给图片换颜色

    slot边框.color = new Color32 (93,165,255,255);

  8. jquery的$(selector).each(function(index,element))和$.each(dataresource,function(index,element))的区别

    $(selector).each(function(index,element)) 定义和用法 each() 方法规定为每个匹配元素规定运行的函数. $(selector).each(function ...

  9. ajax导出表格数据失败的几处坑

    $.ajax({ type:'POST', async:false, url:'/export', data:params, dataType:'json', ... success:function ...

  10. js事件不能触发

    在span标签添加了个onclick事件,捣腾了半天触发不了,设置z-index:1000也没用. 最后发现是元素没设置宽度width导致的,压根儿没往这方面想. 因为添加onclick的span标签 ...