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

目录
相关文章
|
13天前
|
Java API 数据库
Django:从入门到精通
【11月更文挑战第18天】Django是一个由Python编写的高级Web应用框架,以其简洁性、安全性和高效性而闻名。Django最初由Adrian Holovaty和Simon Willison于2003年开发,旨在简化Web应用的开发过程。作为一个开放源代码项目,Django迅速吸引了大量的开发者和用户,成为了Python Web开发领域的重要工具之一。
29 1
|
1月前
|
存储 Shell 数据库
Python编程--Django入门:用户账户(二)
Python编程--Django入门:用户账户(二)
|
1月前
|
存储 数据库 Python
Python编程--Django入门:用户账户(一)
Python编程--Django入门:用户账户(一)
|
3月前
|
前端开发 关系型数据库 Python
Django入门到放弃之分页器
Django入门到放弃之分页器
|
3月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
218 0
|
3月前
|
开发框架 安全 数据库
解锁Django框架神秘面纱!从入门到实战,掌握这些技巧,让你的Web应用秒变高效神器!
【8月更文挑战第31天】Django 是 Python 的明星 Web 开发框架,以其高效、安全及可扩展性著称,适用于构建各类 Web 应用。本文从 Django 基础概念出发,介绍其 MTV 架构,涵盖模型(Model)、模板(Template)、视图(View)等核心组件,并通过示例代码展示实际应用。此外,还将探讨路由配置、管理界面及实战技巧,帮助读者全面掌握 Django,为高效 Web 开发打下坚实基础。
54 0
|
3月前
|
关系型数据库 MySQL 机器人
Django入门到放弃之数据库配置
Django入门到放弃之数据库配置
|
3月前
|
缓存 中间件 数据库
Django入门到放弃之缓存及信号机制
Django入门到放弃之缓存及信号机制
|
3月前
|
前端开发 数据库 数据安全/隐私保护
Django入门到放弃之Auth模块
Django入门到放弃之Auth模块
|
3月前
|
JSON 前端开发 数据安全/隐私保护
Django入门到放弃之CSRF_TOKEN
Django入门到放弃之CSRF_TOKEN