Django视图

本文详细介绍了Django框架中的视图概念及其工作流程,包括视图的定义、参数接收、错误处理以及与URL配置的关系。同时,深入探讨了URL的正则匹配与反向解析,展示了如何通过视图响应不同类型的HTTP请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                              视图(view)

 一、概述

1.1、作用

  1. 接受web请求,并响应web请求。

1.2、本质

  1. 视图就是一个python中的函数。大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中。

1.3、过程

二、url配置

2.1、在项目的urls.py文件中,配置一个URL实例的列表。

  • url匹配正则的注意事项:
  1. 如果想要从url中获取一个值,需要对正则加小括号。
  2. 匹配正则前方不需要加反斜杠
  3. 正则前需要加r表示字符串不转义。

2.2、反向解析URL

  • 本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径
  • 1. 怎么起别名?

         在url匹配模式中,定义name="别名"

  • 2. 如何使用?

         1. 在模板语言里面使用:
          {% url "别名" %}  --> 得到具体的URL路径
         2. 在视图中如何使用:
           from django.urls import reverse
           reverse("别名")  --> 得到具体的URL路径

三、视图函数

3.1、本质

  1. 一个函数

3.2、视图参数

  1. 一个HttpRequest的实例; 通过正则表达式获取的参数

3.3、位置

一般在views.py文件下定义

3.4、错误视图

  • 3.4.1、404视图
  1. 找不到网页时返回,可设置settings.py文件中DEBUG为True,则永远不会调用404.html页面
  • 3.4.2、500视图
  1. 在视图代码中出现错误(服务器代码)
  • 3.4.3、400视图
  1. 错误出现在客户的操作

 

四、基础三件套

1. HttpResponse        --> 返回字符串内容
2. render                     --> 返回一个html页面             
3. redirect                   --> 返回一个重定向(告诉浏览器再去访问另外的网址)

 

五、Request对象

  • 5..1、概述
  1.         服务器接收http请求后,会根据报文创建HttpRequest对象;
  2.         视图的第一个参数就是HttpRequest对象
  3.         django创建后,之后调用视图时传递给视图
  • 5.2、属性
  1. path : 请求的完整路径(不包括域名和端口)
  2. method: 表示请求的方式,常用的有GETPOST
  3. encoding:表示浏览器提交的数据的编码方式
  4. GET : 类似字典的对象,包含了get请求的所有参数
  5. POST:类似字典的对象,包含了POST请求的所有参数
  6. FILES:类似字典的对象,包含了所有上传的文件
  7. COOKIES:字典,包含所有的cookie
  8. session: 类似字典的对象,表示当前会话
  • 5.3、QueryDicti对象
  1. request对象中的GET,POST 都属于QueryDicti对象。
  • 5.4、GET属性
  1. 获取浏览器传递过来的数据
  2. get():根据键获取值,只能获取一个值
  3. getlist():将键的值以列表的形式返回,可以获取多个值
  • 5.5、POST属性
  1. 使用表单提交实现POST属性

 

六、Response对象

  • 6.1、概述
  1. 作用:给浏览器返回数据
  2. HTTPResponse对象由程序员创建,HttpRequest对象由django创建
  • 6.2返回用法
  1. 不调用模板,直接返回数据   return HTTPResponse(‘’)
  2. 调用模板,使用render方法

语法:retunr render (request , templateName , context)

作用:结合数据和模板,返回完整的HTML页面

参数:request : 请求体对象

           templateName :模板路径

           context : 传递给需要渲染在模板上的路径

实例: return render ( request , '.HTML' , { 'tmb':'Mingbo is  a  good  man'})

  • 属性
  1. context: 表示返回的内容
  2. charset : 编码格式
  3. status_code : 响应状态码
  • 子类HttpResponseRedirect
  1. 功能:重定向,服务器端跳转
  2. 简写:redirect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值