zoukankan      html  css  js  c++  java
  • 学习笔记-Python-Django-视图

    # view视图
    # 1、视图概述
    - 视图即视图函数,接受web请求并返回web响应的事物处理函数
    - 响应指符合http协议要求的任何内容,包括json、string、html等
    - 本章忽略事物处理,重点在如何返回处理结果上
    # 2、其他简单视图
    - django.http给我们提供很多和HttpResponse类似的简单视图
    - Http404为Exception子类,所以需要raise使用,方法raise Http404,直接引发404异常
    # 3、HttpResponse详解
    - 方法
    - init:实例化HttpResponse对象
    - write(content):以文件的方式写
    - flush():以文件的方式输出缓存区
    - set_cookie(key, value='', max_age=None, expires=None):设置Cookie
    - key, value都是字符串类型
    - max_age是一个整数,表示在指定秒数后过期,生命周期
    - expires是一个datetime或timedelta对象,会话将在这个指定的日期/时间过期
    - max_age和expires用时二选一
    - 如果不指定过期时间,则两个星期后过期
    - delete_cookie(key):删除指定key的Cookie,如果key不存在则什么也不发生

    # 4、HttpResponseRedirect
    - 重定向,服务器跳转
    - 构造函数的第一个参数用来指向重定向的地址

    # 5、Request对象
    - Request介绍
    - 服务器接收http协议的请求后,会根据报文在中间层创建HttpRequest对象
    - 视图函数的第一个参数是HttpRequest对象
    - 在django.http模块中定义了HttpRequest对象的API
    - 属性
    - 下面除非特别说明,否则属性都是只读的
    - path:一个字符串,表示请求的页面的完整路径,不包含域名
    - method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'、'POST'
    - encoding:一个字符串,表示提交数据的编码方式
    - 如果为None则表示使用浏览器的默认设置,一般为utf-8
    - 这个属性时可写的,可以通过修来它来修改访问表单数据使用的编码
    - GET:一个类似于字典的对象,包含get请求方式的所有参数,直接访问key,如果没有会报错,要用get去访问
    - POST:一个类似于字典的对象,包含post请求方式的所有参数
    - FILES:一个类似于字典的对象,包含所有的上传文件
    - COOKIES:一个标准的python字典,包含所有的cookie,键和值都为字符串
    - session:一个既可读又可写的类似于字典的对象,表示当前的会话
    - 只有当Django启用会话的支持才可用
    - 详细内容见"状态保持"
    - 方法
    - is_ajax():如果请求时通过XMLHttpRequest发起的,则返回True
    - QueryDict对象
    - 定义在django.http.QueryDict
    - request对象的属性GET、POST都是QueryDict类型的对象
    - 与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
    - 方法get():根据键获取值
    - 只能获取键的一个值
    - 如果一个键同时拥有多个值,获取最后一个值
    - 方法getlist():根据键获取值
    - 将键的值以列表返回,可以获取一个键的多个值
    - GET属性
    - QueryDict类型的对象
    - 包含get请求方式的所有参数
    - 与url请求地址中的参数对应,位于?后面
    - 参数的格式是键值对,如key1=value1
    - 多个参数之间,使用&链接,如key1=value1&key2=value2
    - 键是开发人员定下来的,值是可变的
    - 案例/views/v8_get

    - POST属性
    - QueryDict类型的对象
    - 包含post请求方式的所有参数
    - 与from表单中的控件对应
    - 表单中控件必须有name属性,name为键,value为值
    - checkbox多选框存在一键多值的问题
    - 键是开发人员定下来的,值是可变的
    - 案例/views/v9_post

     

     

    # 手动编写视图
    - 实验目的:
    - 利用django快捷函数手动编写视图处理函数
    - 编写过程中理解视图运行原理
    - 分析:
    - django把所有请求信息封装入request
    - django通过urls模块把相应请求跟事件处理函数关联起来,并把request作为参数传入
    - 在相应的处理函数中,我们需要完成两部分
    - 业务处理
    - 把结果封装并返回,我们可以使用简单HttpResponse,同样也可以使用它的子类
    - 本案例不介绍业务处理,把目光集中在如何渲染结果并返回
    - render(request, template_name[, context][, context_instance][, content_type])
    - 使用模板和一个给定的上下文环境,返回一个渲染的HttpResponse
    - request:django的传入请求
    - template_name:模板名称
    - context_instance:上下文环境
    - 案例teacher_app/views/render_test
    - render_to_response
        - 根据给定的上下文字典格式的内容渲染给定模板,返回渲染后的HttpResponse

     

     

    # 系统内建视图  
    - 系统内建视图,可以直接使用
    - 404
    - default.page_not_found(request, template_name='404.html')
    - 系统引发Http404时触发
    - setting.py里设置DEBUG=True则不会调用404,取而代之的是调试信息
    - 404视图会被传递一个RequestContext对象并且可以访问模板上下文处理器提供的变量
    - 500(server error)
    - defaults.server_error(request, template_name='500.html')
    - 需要设置DEBGU=False,否则不会调用
    - 403(HTTP Forbidden)视图
    - defaults.permission_denied(request, template_name='403.html')
    - 通过PermissionDenied触发
    - 400(bad request)视图
    - defaults.bad_request(request, template_name='400.html')
    - DEBUG=False

    
    
  • 相关阅读:
    Linux入门
    Linux和VMware
    vue中select的使用以及select设置默认选中
    Django ModelFrom组件
    Django登录(含随机生成图片验证码)注册实例
    Django组件---Django请求生命周期和中间件
    Python3之使用Crypto
    ORM大结局
    ORM多表查询下
    Pycharn破解补丁激活
  • 原文地址:https://www.cnblogs.com/Cloudloong/p/10103678.html
Copyright © 2011-2022 走看看