首先,看看创建了一个App之后,Django的目录结构:

如上所示,是一个包含一个名为【blog】的App的Django的项目的目录结构。

Django的目录可以总体上划分为两类:

  • 项目目录
  • 应用目录

需要注意:

  1. 项目目录只有一个
  2. 项目吗目录包含应用目录
  3. 应用目录可以有多个

项目目录

项目目录包含的文件与目录如上所示,具体内容如下:

  • 文件:manage.py
  • 文件:db.sqlite3
  • 目录:与项目名称同名的文件夹(只有一个)
  • 目录:应用目录(可能包含多个)

文件:db.sqlite3

这是一个默认的数据库SQLite的数据库文件。

SQLite是Python默认安装的数据库,在Django中,你可以使用默认的数据库SQLite,也可以指定其他的数据库,例如:Oracle / MySQL / …等等。

文件:manage.py

在创建了一个Django的项目之后,manage.py文件会在项目的根目录中被自动生成。
manage.py文件,其实是对django-admin命令的简单封装。

django-admin命令对应的文件是django-admin.py,它位于Django安装后的目录的bin/目录。
而manage.py则只有在创建了一个项目后,才会位于项目的根目录中。

最后,需要注意的是:manage.py文件,不需要修改,也不要删除。
在日常的Django开发与维护过程中,我们会经常需要使用到它。

django-admin命令对应的文件路径:

目录:与项目同名的目录

该目录是所创建的项目的管理功能的目录,而项目管理功能的目录会因为用户创建项目时候的项目名称的不同,而导致该目录的名称不同。
该管理目录的名称会与项目名称一致。

项目管理功能目录一般包含以下几个文件:

  • settings.py:该文件中包含了项目的初始化设置 – 可以针对整个项目进行有关参数的配置 | 如:配置数据库、添加应用等等
  • urls.py:这是一个URL配置表文件 – 将URL映射到应用程序上 | 当用户请求某个URL的时候,Django会根据这个文件中的映射关系指向到某个目标对象,该对象可以是某个应用中的urls.py文件,也可以是某个具体的视图函数
  • wsgi.py:WSGI是Web Server Gateway Interface的缩写,它是Python所选择的服务器和应用标准,Django也会使用 | wsgi.py文件定义了我们所创建的项目都是WSGI应用
  • __pycache__:如果创建项目后,不执行python manage.py runserver命令将项目运行起来,那么__pycache__将不会存在;只有在网站运行后,它才会出现;它其实是一个编译后的文件夹,其中的文件都是以.pyc结尾的

应用目录

在当前的示例中,我的应用目录是blog:

在Django中,每当创建一个应用,那么就会在项目的根目录中,创建一个以应用名称命名的子目录。
一个项目可以有很多个应用,但每个应用的目录中的结构却是一致的。

如上所示,应用目录中包括以下几个文件与目录:

  • 文件:admin.py – 该文件用于自定义Django管理工具 | 例如:设置在管理界面能够管理的项目、通过重新自定义与系统有关的类对象向管理功能增加新的内容
  • 文件:apps.py – 该文件是Django 1.10之后增加的,通常包含对应用的配置 | 例如:为管理功能提供一个合适的应用名称
  • 文件:models.py – 定义应用的数据模型;每个Django应用都应该有一个models.py文件 | 注意:该文件可以为空,但不建议删除
  • 文件:tests.py – 这个文件中可以编写测试文档来测试所创建的应用
  • 文件:views.py – 用于保存响应各种请求的函数或者类 | 如果编写的是函数,则被称为基于函数的视图;如果编写的是类,则被称为基于类的视图 | views.py就是保存函数或者类的视图文件 | 你可以使用其他的文件名,但是需要注意在引用相应的函数或者类的时候,要保证名称的正确性;views.py是我们比较习惯的文件名称
  • 目录:migrations – 这是一个用于存储应用的数据库表结构的指令(SQL文件)的目录;通过这个指令,可以修改和创建数据库,从而在models.py模型类与数据库表之间做迁移

最后,将上述内容总结一下,脑图如下:

脑图过大,如果看不清楚,可以:

  • 图片另存为,下载本地观看
  • 在浏览器的另一窗口或标签页打开,放大观看

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装