首页 > 其他分享 > django基础到高手知识笔记总结 共4大模块50页md文档 第2章:django视图和模板的使用

django基础到高手知识笔记总结 共4大模块50页md文档 第2章:django视图和模板的使用

时间:2023-10-29 22:05:52浏览次数:36  
标签:md 文件 URL 配置 视图 Django django

当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源Python Web框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用

完整版笔记直接地址: 请移步这里


共 10 章,31 子模块,总计 18647 字


工程搭建

学习目标

  • 掌握虚拟环境使用
  • 掌握Django项目和应用的创建
  • 掌握Django项目的运行
  • 掌握Django视图和模板的初步使用

视图模板初步使用

Django中的视图

  • 同Flask框架一样,Django也使用 视 图 来编写Web应用的业务逻辑。
  • Django的视图也就是一个函数,可称为 视 图函数
  • 视 图 定义在应用的 views.py 文件中的
  • 视 图 需要绑定一个URL地址(路由),才能被django框架找到并调用执行

一、视图初步使用

需求: 编写视图并配置URL(路由),实现一个显示界面

1. 需求: 当在浏览器中访问URL地址 `ht://127.0.0.1:8000/users/index` 时,显示 `hello django` 信息
2. 实现:
   1. 需要编写一个视图函数
      2. 针对该视图配置访问路由

1. 创建视图

打开刚创建的users模块,在 views.py 中编写视图代码。


​ from django.http import HttpResponse ​

def index(request):
    """访问首页的视图"""
    return HttpResponse("hello django")

image

关于视图的说明:

  • 关于视图【理解】

    • 视 图不是由开发者主动调用的,而是由 Django 框架调用
    • 当Django接收到请求时,会进行URL正则匹配,调用对应的视图
    • 调用视图时,Django会把请求信息封装为一个 HttpRequest 对象,并作为视图的第一个参数传入
  • 关于视图的参数

    • 视 图的第一个参数必须定义,名字可自定义,但习惯命名为 request,类型为HttpRequest
    • 缺少了该参数,Django在调用视图时,将无法传入HttpRequest对象
  • 关于视图的返回值

    • 视图必须返回一个 HttpResponse 对象(或其子类对象),不能像Flask一样直接返回字符串
    • HttpRequest请求对象由Django创建,HttpResponse响应对象由开发人员创建

2. 配置URL(路由)

  • 在项目下的 urls.py 文件中进行url路由配置如下:

      # 注意:urlpatterns是一个列表
    

    urlpatterns = [ ...

      # 配置路由和视图: ht://127.0.0.1:8000/users/index
    
    
    
    
    
    
      # 参数1: 匹配url的正则表达式
    
    
    
    
    
    
      # 参数2: 匹配成功后由Django框架调用的视图函数
    
    
    
    
      url(r'^users/index$', views.index),
    

    ]

注意:此处只是为简单作的初步配置,后续会对URL配置进一步讲解

3. 在浏览器中测试

在浏览器中输入网址 ht://127.0.0.1:8000/users/index,确认是否执行了视图的逻辑,返回 hello django 信息

在浏览器测试

一、模板初步使用

1. 在项目的 `templates` 目录下创建一个模板文件

模板初步

  1. 在视图函数中,使用render()方法渲染模板,得到HttpResponse对象并返回

    def index(request):

    # render返回的是HttpResponse对象
    
    
    
    
    return render(request, 'index.html')
    

二、额外项目配置

【 注意】 针对命令行创建的项目,需要额外手动创建模板目录,并进行配置;如果Pycharm创建的项目则无需作额外操作

1. 在项目根目录下创建 `templates` 模板目录,后续开发中模板文件会放在此目录下
2. 在 `setting.py` 项目配置文件中,作如下配置:

django-004

项目配置文件

学习目标

  • 掌握Django配置文件的常用配置

项目常用配置

在项目的 setting.py 配置文件中,进行项目相关配置的修改。

1. BASE_DIR


​ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))

当 前项目的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。

2. DEBUG

  • 含义:是否为调试模式(开发模式),默认为 True
  • 作用:当 DEBUGTrue 时,如果Django程序运行出现异常时,会在浏览器显示详细的出错调试信息(如下图),而非调试模式下,不会显示出错调试信息

错误信息

【重要】项目运行出错了,需要查看是哪里一行代码造成出错,再进行分析解决

错误信息

  • **注 意:**项目上线应该设置为 False 关闭调试模式,并且要同时设置 ALLOWED_HOSTS 参数

      # 关闭调试模式
    

    DEBUG = True

    设置允许通过哪些主机访问, * 表示匹配所有(ip)

    ALLOWED_HOSTS = ['*']

3. 本地语言与时区

项目本地化配置

  • Django支持本地化处理,即显示语言与时区

  • 新创建的Django项目,默认使用的语言为 英语,时区为 UTC标准时区

    LANGUAGE_CODE = 'en-us' # 语言 TIME_ZONE = 'UTC' # 时区

  • 配置修改: 将语言和时区修改为中国大陆信息

    LANGUAGE_CODE = 'zh-hans' # 语言设置为 中文 TIME_ZONE = 'Asia/Shanghai' # 时区设置为 亚洲/上海,注意没有北京

测试

1. django自带了管理后台模块,可以通过 `ht://127.0.0.1:8000/admin/login` 访问,默认显示为英文

2. 修改上述参数后,再次访问,确认是否会显示为中文

本地化

4. App应用配置

  1. 在每个应用目录中都包含了 apps.py 文件,用于保存该应用的相关信息

  2. 在创建应用时,Django会向 apps.py 文件中写入一个该应用的配置类,如下

    from django.apps import AppConfig

    class UsersConfig(AppConfig):

    # 表示这个配置类是加载到哪个应用的,
    
    
    
    
    
    
    # 每个配置类必须包含此属性,默认自动生成
    
    
    
    
    name = 'users'
    
  3. 应用配置: 需要在项目配置文件 settings.py 中的 INSTALLED_APPS 列表中,注册创建出来的应用,示例:

django-004

配 置说明

* **用 pycharm创建的项目,默认已经是注册了应用的,不需要作额外配置**,针对新创建的应用(或命令行创建的应用)需要作此配置
* 作用:注册应用后,后续开发中,针对该应用中定义的模型类,才会生成对应的数据库表;

静态文件及配置

  • 项 目中的 CSS、图片、js都是 静态文件
  • 静态文件可以放到一个单独的目录中,以方便管理
  • 静态文件相关配置
    • STATICFILES_DIRS 静态文件保存在哪个目录下(此参数默认django没有配置,需要开发者自己配置)
    • STATIC_URL 访问静态文件的URL前缀,通常采用默认值 /static/

配置示例

1. 在项目根目录下创建 `static_files` 目录,并添加子目录和文件 `imgs/avatar01.png`

2. 在 项目 `settings.py` 文件中进行配置



     # 访问静态文件用到的url前缀




 STATIC_URL = '/static/'





 # 告知Django静态文件保存在哪个目录下




 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_files')]
  1. index.html模板中应用

    使用静态文件: <br/> <img src="/static/imgs/avatar01.png" />

注意

  • Django 仅在调试模式下(DEBUG=True)能对外提供静态文件
  • DEBUG=False 工作在生产模式时,Django不再对外提供静态文件

路由配置

学习目标

  • 掌握Django中URL配置
  • 掌握Django URL的匹配流程
  • 掌握URL路径中请求参数的

未完待续 下一期下一章

完整笔记请看文章开头

标签:md,文件,URL,配置,视图,Django,django
From: https://blog.51cto.com/u_13578013/8081230

相关文章

  • python进阶14大模块200页知识体系md笔记,第3篇:linux命令进阶
    本完整笔记从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。完整版笔记直接地址:请移步这里......
  • AMD Ryzen AI 暂仅支持 Windows,Linux 系统有望后续支持
    近日消息,最新的AMDRyzen7040系列笔记本电脑配备了基于XilinxIP的专用AI引擎,名为“RyzenAI”,可以加速PyTorch和TensorFlow等机器学习框架的运行。不过目前这个RyzenAI只支持微软Windows系统。但是如果有足够的客户需求,这种情况可能会改变。早在6月份,AM......
  • 基于python+django的二手商品交易平台-二手商品供需系统
    项目简介该项目是基于python的web类库django开发的一套web网站,二手商品交易平台,给师弟开发的课程作业。大家在学习过程中,遇到问题可以github咨询作者。预览展示http://mask.gitapp.cn源码地址https://github.com/geeeeeeeek/mask开发步骤:启动项目django-adminstartproject......
  • django中正确创建数据库
    新手学习django创建数据库时,经常因为设置不当或者操作步骤不对而状况百出。这里梳理一下主要步骤和注意重点和大家共同学习。这里以sqlite数据库为例。首先,在创建完成项目和项目文件后,要将创建的文件添加到settings.py文件中的INSTALLED_APPS列表中,完成新建文件注册。第二步,编写mod......
  • MySQL--视图
    一、视图视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。单表视图的数据变化会影响到基表创建视图:createview视图名as查询语句createviewnewresultasselects.studentNameas姓名,sub.......
  • RoadeSHI Winform-MDI窗体
    MDI窗体用于显示多个文档,每个文档显示在各自的窗口中1、设置MDI父窗体:IsMdiCintainer属性设置为true2、确定子窗体:用MdiParent属性来确定子窗体   如:frm2.MidParent=this; //设置MdiParent属性,将当前窗体作为frm2窗体的父窗体3、排列MDI子窗体:MdiLaout来指定......
  • 创建一个django项目
    1.创建一个django项目在pycharm里面创建一个django的新项目在项目配置的时候选择好第一个app,templates文件和python环境(在环境里要先下好django)我这里用的是conda管理的环境django里面的目录结构最外层的是本项目名字的一个app,一个users的app,templates模板文件,manages.py(......
  • (一)模型/视图介绍
    模型/视图介绍Qt包含了一组itemview类,它们使用模型/视图架构来管理数据之间的关系以及呈现给用户的方式。该体系结构引入的功能分离,为开发人员提供了更大的灵活性来定制项目的表示,并提供了一个标准的模型接口,以允许广泛的数据源与现有项目视图一起使用。模型/视图结构模型-视图-控......
  • (四)视图类
    1.基本概念在模型/视图架构中,视图从模型中获取数据项并将它们呈现给用户。数据的表示方式不必与模型提供的数据表示形式相似,而且可能与用于存储数据项的底层数据结构完全不同。通过使用QAbstractItemModel提供的标准模型接口和QAbstractItemView提供的标准视图接口,以及使用通用方式......
  • Python 框架学习 Django篇 (六) 数据表关联、ORM关联
    在后端服务器开发中,特别是前后端分离的架构中数据库是非常重要的,后端主要就是负责管理数据,而我们经常使用的mysql、oracle都是关系型数据库,什么是关系型数据库?就是建立在关系模型基础上的数据库,而最难处理的就是各个表之间的关联关系,一般这种关系分为三种:一对一、一对多、多对......