Django使用服务的模块化结构来提供整体解决方案。换句话说,一个Django项目可能只有几个,或者在某些情况下有大量的不同模块来提供项目所提供的服务。在Django术语中,这些模块被称为Apps。每个模块,或App,在整个Django项目中都有自己的目录。任何为该App提供功能的应用程序代码或Python文件都在该特定目录中。如果这听起来很混乱,不用担心,Django有一个功能可以自动创建一个App,就像自动创建一个项目的过程。
预制的应用程序
如果你想看看你的Django安装可以使用的各种应用程序,你可以查看Django Packages网站。在这里,你会发现有超过3000个不同的应用程序可以试用。一些流行的应用程序类别包括活动、API创建、认证、博客、日历、聊天、自定义模型、开发者工具和饲料聚合器等内容。
定制的应用程序
除了所有可供试用的预制应用程序之外,我们还可以在Django中建立自己的自定义应用程序。你需要对Python和网络平台的工作原理有一定的了解,才能做到这一点。当你准备在Django中创建自己的App时,你可以通过manage.py文件使用一个特殊的命令。
python manage.py startappappname
manage.py的startapp子命令用于在给定的Django项目中为一个新的App生成支架。我们想创建一个新的应用程序,所以现在让我们来试试。我们可以调用App的目标。
myproject $
当用startapp命令创建一个新的App时,一个新的文件夹被添加到Django的外部目录中。我们可以在Visual Studio Code中看到这个新文件夹。

在新的App目录中,还有几个文件和一个额外的内部目录。

项目中的应用程序
这里有一张图表,显示了这一切的样子。

让我们来看看这些文件在Django的应用程序中分别起什么作用。
migrations文件夹--在Django项目中,每个生成的App都有自己的migrations文件夹。最初,这个文件夹会有一个空的 __init__.py 文件,它是一个常规的包,通常实现为一个包含 __init__.py 文件的目录。当我们开始在Django中使用数据库时,新的Python文件将存储在这里,代表每个Apps的迁移。迁移是用来定义和更新发生在模型上的任何变化。Django模型是Django用来创建表、它们的字段和各种约束条件的东西。
__init__.py- 同样,__init__.py只是简单地将当前目录描述为一个Python包或模块。
admin.py
from django.contrib import admin
# Register your models here.
admin.py文件是用来在 Django 管理面板中注册你的模型。Django 管理面板从你的模型中读取元数据,比如字段,并让你通过简单的配置这个 admin.py 文件在每个应用程序的基础上执行 CRUD 操作。
apps.py
from django.apps import AppConfig
class GoalsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'goals'
apps.py文件可以帮助用户为给定的应用程序包括任何应用程序的配置。使用它,你可以配置应用程序的一些属性。默认情况下,名称变量被设置为在应用程序创建时给出的相同名称。
models.py
from django.db import models
# Create your models here.
我们可以说models.py文件是为Django App创建的文件中最重要的。正是在这个文件中,你定义了模型到数据库表的映射。
tests.py
from django.test import TestCase
# Create your tests here.
默认的startapp命令会在新的应用程序中创建一个tests.py文件。这是为了帮助你在开始的时候有一个地方可以为你的应用程序放置一些基本的测试。
views.py
from django.shortcuts import render
# Create your views here.
views.py文件可能是创建一个新的Django应用程序时第一个要开始编辑或添加代码的文件。views.py是定义Python函数的地方,它接受一个HTTP请求,并返回一个HTTP响应。Django中的视图可以被认为是MVC范式中的控制器,尽管Django本身就是一个MVT(模型、视图、模板)框架。
