Django的视图views和模板

views的作用

客户端的请求通过路由url可以被传递到指定的视图函数view,进行对应的业务处理,当处理完业务,views将回复一个响应通过url返回给客户端,所以说views是后端开发专门处理业务的模块。

我们接下来就讲一讲views的请求与响应

请求request

request对象会默认注入到视图函数中,最为第一个参数

request的常见的属性

  • request.GET : 获取get请求的提交的数据

  • request.POST:获取post提交的数据

    • request.GET和request.POST都会返回一个QueryDict对象
    • querydict对象的常见的方法
      • get(key, default=None): 获取指定的键对应的值,返回字符串,如果键不存在,default 设置默认值
      • getlist(key) : 获取指定的键对应的值,返回一个列表
      • dict() : 将QueryDict对象转成 字典
  • request.FILES : 获取上传的资源

    • get(key) : 获取上传的文件,返回一个InMemoryUploadedFile文件对象
      • InMemoryUploadedFile文件对象中,常用的属性和方法

      • name : 获取文件的名称

      • size : 获取文件的大小

      • content_type : 获取文件的真实类型

      • chunks() : 以块的方式读取文件,是一个生成器,适合读取大的文件,防止内存溢出

      • read() : 以流的方式读取文件、适合小文件的读取

  • request.path : 获取请求地址

  • request.method: 请求的方式,(GET, POST)

  • request.content_type : 请求的类型

  • request.headers : 获取请求的头信息

  • request.is_ajax() : 是否是异步请求

  • request.user : 代表当前登录的用户

  • request.COOKIES : 获取浏览器中存储的 cookie

  • request.session : 获取session

浏览器向服务器传递参数的方式
  • GET 传参, 特点: 以 ? 分割, 通过 键=值的方式 ,多个参数用 & 分割
  • POST参数, 特点: 表单提交数据
  • 参数路由
服务器向模板传递参数的方式
  • render(request, template_name, context)

响应response

视图函数 必须返回 HttpResponse 对象

Django响应方式

  • HttpResponse : 响应一个简单的字符串 或者 流数据
  • render : 跳转到 模板(html)页面中
  • redirect : 重定向,跳转到 一个 路由地址中
  • FileResponse : 实现文件下载的响应对象
  • JsonResponse : 返回 json个数的数据的 响应对象

HttpResponse

常见的参数如下

  • content : 响应的内容,可以是一个字符串,也可以是一个 流
  • content_type : 响应的类型,默认值是 text/html;charset=utf-8
  • status : 响应的状态码, 默认值是 200
    • 200 : ok 正常
    • 201 : Created 新增数据的时候
    • 204 : no content 删除数据的时候
    • 301 : 永久性重定向
    • 302 : 临时重定向
    • 304 : 代表资源未修改、
    • 400 : Bad Request ,请求参数不正确
    • 403 : 禁止访问,代表 访问的资源没有权限
    • 404 : Not found 代表 请求的资源未找到
    • 405 : 请求方式不正确
    • 500 : 服务器内部程序错误 (编写的代码出错了)
      ps:其他响应码的含义
  • charset : 设置响应的编码

render 跳转模板

导入 from django.shortcuts import render

render(request,  template_name, context=None, content_type=None, status=None)

- request: 请求对象,每一个视图函数都用
- template_name : 模板的名称,html网页的名字 
- context : 向模板传递的数据 ,格式是一个字典
- content_type : 响应的类型,默认值是 text/html;charset=utf-8
- status : 响应的状态码,默认是200
django 模板的配置
  • 在项目的根下, 新建一个 templates 目录
  • 右键 templates --> make directory as -> template folder (不是必须的)
  • settings.py 中,进行模板的配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

redirect 重定向

from django.shortcuts import redirect

redirect(to, *args, permanent=False, **kwargs)

- to : 跳转到某一个 请求地址中(路由)
- permanent : 默认是 False, 代表 临时重定向,状态码是 302, 如果设置为 true, 代表采用 永久型重定向,状态301

JsonResponse

JsonResponse(data, safe=True)

- data : 代表响应的 JSON数据、支持的数据是 列表 和 字典 ,默认只能传 字典 

safe = True : 代表 data 传的是 字典 

safe = False : 代表 data 传的是 非字典

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值