Django入门(中)

简介: Django的初步认识与应用

4.视图和模板


4.1视图


4.1.1 什么是视图


  • 视图通常是一个python函数,可以叫视图函数,或者简称视图,定义在 应用/views.py 文件中。
  • 响应内容:一般是一个网页的HTML内容、一个重定向、错误信息页面、json格式的数据
  • 类视图(了解,区别于函数视图),即把请求方法封装到一个类里


4.1.2 视图的作用


  • 接收并处理请求,调用M和T,响应请求(返回HttpResponse或其子类)
  • 每一个用户请求,都对应着一个视图(和url地址),由视图处理请求后,再返回html页面内容给浏览器显示

  image.png


4.1.3URL配置


  • 作用:建立url地址和视图函数的对应关系。当用户请求某个url地址时,让django能找到对应的视图函数进行处理。
  • 定义完视图后,需要配置urlconf,否则无法处理请求


4.1.4URL配置规则


  • 域名、端口、参数不参与匹配
  • 先到项目下的urls.py进行匹配,再到应用的urls.py匹配
  • 自上而下的匹配
  • 匹配成功的url部分会去掉,剩下的部分继续作匹配
  • 匹配不成功提示404错误
  • 正则表达式 应使用 ^ 和 $ 严格匹配请求url的开头和结尾,以便匹配唯一的字符串


4.2HttpRequest对象


  • HttpRequest对象由Django程序自动创建,请求报文自动被封装成HttpRequest对象,并传递给视图函数第一个参数。


4.2.1常用属性


image.png


4.2.2常用方法


image.png


4.2.3HttpRequest.user详解


  • user只有当Django启用AuthenticationMiddleware中间件时才可用。
  • 一个AUTH_USER_MODEL类型的对象,表示当前登录的用户。如果用户当前没有登录,user将设置为django.contrib.auth.models.AnonymousUser的一个实例,可以通过is_authenticated( )区分

  image.png

  • django.contrib.auth.models.AnonymousUser 类(匿名用户)实现了django.contrib.auth.models.User 接口,但具有下面几个不同点:
    1> id永远为none
    2> username永远为空字符串
    3> get_username( )永远返回空字符串
    4> is_staff和is_superuser永远为False
    5> is_active永远为False
    6> groups 和 user_permissions永远为空
    7> is_anonymous( )返回True
    8> is_authenticated( )返回False
    9> sete_password( )、check_password( )、save( )和delete( )会触发NotImplementedError。


4.3HttpResponse对象


  • HttpResponse对象由我们自己创建。每一个视图方法都应该返回一个HttpResponse对象。


4.3.1属性


image.png


4.3.2方法


image.png


4.3.3HttpResponse子类对象


HttpResponseRedirect

  • 重定向,服务器端跳转
  • 函数的第一个参数用来指定重定向的地址,可以是全路径、没有域名的绝对路径、相对路径

  image.png

JsonResponse

  • 用于创建Json格式的Response,
  • 默认的Content-Type header 设置成application/json
  • 默认只能传递字典类型,如果要传递非字典类型需要设置一下safe关键字参数。

image.png

StreamingHttpResponse

  • 生成流数据,当生成Response需要花费太多时间或者大量内存时使用,比如生成大型csv文件


FileResponse

  • 属于StreamingHttpResponse的子类,用于操作二进制文件

 

image.png


4.4其他方法


4.4.1 render方法


  • render(request, template_name[, context])
  • 结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的HttpResponse对象。
  • request:用于生成响应的请求对象。
  • template_name:要使用的模板的完整名称。
  • context:添加到模板上下文的一个字典,默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板之前调用它。

  image.png


4.4.2 redirect 重定向方法


  • redirect(to)
  • 为传递进来的参数返回HttpResponseRedirect
  • to推荐使用反向解析

 

image.png


4.5模板


4.5.1 什么是模版


  • 模版是HTML页面,可以根据视图中传递的数据填充数据
  • 模版目录在templates下
  • 需要在settings.py下设置TEMPLATES值


4.5.2 模版访问视图


image.png


4.5.3 模版示例


index.html

image.png

detail.html

image.png

使用模版

编辑views.py文件,在方法中调用模版

image.png

目录
相关文章
|
3月前
|
监控 安全 应用服务中间件
python中Django入门(四)
python中Django入门(四)
41 0
|
3月前
|
Python API 网络架构
Django实践-10RESTful架构和DRF入门
Django实践-10RESTful架构和DRF入门
Django实践-10RESTful架构和DRF入门
|
20天前
|
测试技术 API 数据库
Django测试入门:打造坚实代码基础的钥匙
Django测试入门:打造坚实代码基础的钥匙
31 3
|
10天前
|
前端开发 网络协议 物联网
Django Web:搭建Websocket服务器(入门篇)
Django Web:搭建Websocket服务器(入门篇)
21 1
|
2月前
|
数据库 开发者 Python
Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作
Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作
|
2月前
|
前端开发 数据库 Python
Django入门全攻略:从零搭建你的第一个Web项目
Django入门全攻略:从零搭建你的第一个Web项目
|
3月前
|
开发框架 中间件 数据库
Django 框架入门全攻略:轻松构建 Web 应用
【5月更文挑战第18天】本文是 Django 入门教程,介绍了如何使用 Django 构建 Web 应用。内容包括安装、项目与应用创建、模型定义、数据库迁移、视图编写、路由配置、模板系统、表单处理和中间件的使用。通过实例展示了 Django 基本流程,帮助初学者快速上手。Django 提供高效工具,便于开发者聚焦业务逻辑,轻松构建功能丰富的 Web 应用。
56 5
|
3月前
|
测试技术 数据库 开发者
Django自动化测试入门:单元测试与集成测试
【4月更文挑战第15天】本文介绍了Django的自动化测试,包括单元测试和集成测试。单元测试专注于单个视图、模型等组件的正确性,而集成测试则测试组件间的交互。Django测试框架提供`TestCase`和`Client`进行单元和集成测试。通过编写测试,开发者能确保代码质量、稳定性和应用的正确协同工作。运行测试使用`python manage.py test`命令,建议将其纳入日常开发流程。
|
3月前
|
XML JSON 前端开发
Django视图函数技巧,从入门到实战
Django视图函数技巧,从入门到实战
|
9月前
|
Python
05 Django入门 - 视图(介绍)
05 Django入门 - 视图(介绍)
36 0