Django视图层(视图)的使用

  


  

  

视图函数,简称视图,本质上是一个简单的Python函数,它接受网络请求并且返回Web响应。响应的内容可以是HTML网页,重定向,404错误,图片等任何东西,但本质是返回响应对象HttpResponse。

  

视图函数的代码写哪里都可以,但一般约定俗成设置在项目或应用程序目录中的观点。py文件中

  

视图案例:
  

        django。快捷方式进口呈现,HttpResponse HttpResponseRedirect,定向   进口日期时间      def current_datetime(请求):   现在=datetime.datetime.now ()   html=" & lt; html> & lt; body>现在% s。;/body> & lt;/html>”%现在   返回HttpResponse (html)   之前      

解析:   

      <李>从django。快捷键模块导入了HttpResponse类,以及Python的datetime库。   <李>定义了current_datetime函数。它就是视图函数。每个视图函数都使用HttpRequest对象作为第一个参数,并且通常称之为请求。视图函数的名字能反映除它的功能即可李   <李>视图函数最后返回HttpResponse对象,其中包含生成的响应。每个视图函数都负责返回一个HttpResponse对象。   
  


  

  

<强>请求对象(请求)的属性:
  

  

django将请求报文中的请求行,首部信息,内容主题封装成HttpRequest类中的属性。除特殊说明外,其他均为只读
  1. request.POST ,,#前台帖子传过来的数据,包装到后字典中
  2. request.GET ,,,#前台浏览器窗口里携带的数据,包装到得到字典中
  3.request.method #前台请求的方式
  4. request.body ,,#后提交的数据,身体体的内容,前台会封装成:name=lqz&年龄=18和性别=1
  5. request.path #取出请求的路径,取不到数据部分
  6. request.encoding #一个字符串,表示提交的数据的编码方式,默认“utf - 8”
  7. request.META #一个标准的Python字典,包含所有的HTTP首部
  ,,,,,,CONTENT_LENGTH——请求的正文的长度(是一个字符串)。
  ,,,,,,CONTENT_TYPE——请求的正文的MIME类型。
  ,,,,,,HTTP_ACCEPT——响应可接收的内容类型。
  ,,,,,,HTTP_ACCEPT_ENCODING——响应可接收的编码。
  ,,,,,,HTTP_ACCEPT_LANGUAGE——响应可接收的语言。
  ,,,,,,HTTP_HOST——客服端发送的HTTP主机头部。
  ,,,,,,HTTP_REFERER——引用页面。
  ,,,,,,HTTP_USER_AGENT——客户端的用户代理字符串。
  ,,,,,,QUERY_STRING——单个字符串形式的查询字符串(未解析过的形式)。
  ,,,,,,REMOTE_ADDR——客户端的IP地址。
  ,,,,,,REMOTE_HOST——客户端的主机名。
  ,,,,,,REMOTE_USER——服务器认证后的用户。
  ,,,,,,REQUEST_METHOD——一个字符串,例如“获得”或“后”。
  ,,,,,,SERVER_NAME——服务器的主机名。
  ,,,,,,SERVER_PORT——服务器的端口(是一个字符串)。
  ,,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  ,,除CONTENT_LENGTH和CONTENT_TYPE之外,请求中的任何HTTP首部转换为元的键时,
  ,,都会将所有字母大写并将连接符替换为下划线最后加上HTTP_ 前缀。
  ,,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  8. 请求。文件#包含所有的上传文件信息。
  9. request.COOKIES #字典格式,键和只都是字符串,包含所有的饼干
  10. request.session #当前会话,只有当django启用会话时才可用
  11. request.user(用户认证组件)
  ,,一个AUTH_USER_MODEL类型的对象,表示当前登录的用户。

  

如果用户当前没有登录,用户将设置为django.contrib.auth.models。AnonymousUser的一个实例只,,,,,你可以通过is_authenticated()区分它们。

  

例如:         如果request.user.is_authenticated ():   #为登录用户做一些事情。   其他:   #为匿名用户做一些事情。      

用户只有当Django启用AuthenticationMiddleware中间件时才可用。

  

匿名用户
  

        类models.AnonymousUser      django.contrib.auth.models。AnonymousUser类实现了django.contrib.auth.models。用户接口,但具有下面几个不同点:   之前      

,,,id永远为None。
  ,,用户名永远为空字符串。
  ,,get_username()永远返回空字符串。
  ,,is_staff和is_superuser永远为假。

Django视图层(视图)的使用