Django视图views--白话聊Django系列

Posted 财经知识狂魔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django视图views--白话聊Django系列相关的知识,希望对你有一定的参考价值。

  继续看上图,讲完控制器后,我们接下来看看视图部分

  客户发来请求,首先经过控制器,然后到达视图,所以视图负责接收请求和作出响应,所以在视图里只需要关注两个:HttpRequest和HttpResponse,只要关注这两个对象的使用方法,其中作出响应的render本质上也是调用了HttpResponse

  HttpRequest:

  1.path  请求页面的全路径,不包括域名

  2.method  前端数据提交过来的方式,大写,“GET”  “POST”

  3.GET  get请求字典信息

  4.POST  post请求字典信息

  5.FILES  上传文件  字典信息  {‘filename’:“xxx”,‘content_type’:“xxx”,“content”:‘xxx’}

  6.其他的cookie,,,在后面组件会讲到,这里就不讲了

# path:       请求页面的全路径,不包括域名
#
# method:     请求中使用的HTTP方法的字符串表示。全大写表示。例如
#
#                    if  req.method=="GET":
#
#                              do_something()
#
#                    elseif req.method=="POST":
#
#                              do_something_else()
#
# GET:         包含所有HTTP GET参数的类字典对象
#
# POST:       包含所有HTTP POST参数的类字典对象
#
#              服务器收到空的POST请求的情况也是可能发生的,也就是说,表单form通过
#              HTTP POST方法提交请求,但是表单中可能没有数据,因此不能使用
#              if req.POST来判断是否使用了HTTP POST 方法;应该使用  if req.method=="POST"
#
#
#
# COOKIES:     包含所有cookies的标准Python字典对象;keys和values都是字符串。
#
# FILES:      包含所有上传文件的类字典对象;FILES中的每一个Key都是<input type="file" name="" />标签中                     name属性的值,FILES中的每一个value同时也是一个标准的python字典对象,包含下面三个Keys:
#
#             filename:      上传文件名,用字符串表示
#             content_type:   上传文件的Content Type
#             content:       上传文件的原始内容
#
#
# user:       是一个django.contrib.auth.models.User对象,代表当前登陆的用户。如果访问用户当前
#              没有登陆,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你
#              可以通过user的is_authenticated()方法来辨别用户是否登陆:
#              if req.user.is_authenticated();只有激活Django中的AuthenticationMiddleware
#              时该属性才可用
#
# session:    唯一可读写的属性,代表当前会话的字典对象;自己有激活Django中的session支持时该属性才可用。

   对于HttpRequest对象来说,是由django自动创建的,但是,HttpResponse对象就必须我们自己创建。每个view请求处理方法必须返回一个HttpResponse对象。

  HttpResponse:

  1.render(请求对象,渲染模板,参数)

  2.render_to_response(渲染模板,参数)  和render相比,不用传请求对象

  3.redirect  页面跳转

  4.locals  可以获取函数所有的变量,获取的后可以当做参数直接传入到模板进行渲染

def money(req,f):
    print(f)
    fff = f
    #渲染
    # return render(req,\'index.html\',locals())
    # return render_to_response(\'index.html\',locals())
    #跳转
    return redirect(\'www.baidu.com\',locals())

   注意:渲染给前端传值的时候,传字典

 

以上是关于Django视图views--白话聊Django系列的主要内容,如果未能解决你的问题,请参考以下文章

Django models ORM基础操作--白话聊Django系列

Django - - 基础 - - Django的View(视图)

Django:视图views

django视图和url配置为啥没有view.pyc

django框架的视图views_django

django框架的视图views_django