Django中的一切都围绕着应用程序的概念。Django中的应用程序是一个独立的目录,其中包含的文件一起工作,为你的项目提供特定功能。一个[Django项目]可以由一个单独的应用组成,也可以由许多应用来提供服务。事实上,有一个网站专门为开发者提供各种可重复使用的应用程序、工具,以及更多用于你的Django项目。在本教程中,我们将继续构建我们的Django项目,并从头开始为博客功能添加一个应用程序。
添加一个应用程序
我们可以使用python manage.py startapp命令在我们的顶级项目文件夹中添加一个新的应用程序。这个应用将用于管理博客系统中的文章,所以我们将其称为 posts.
djangoblog $python manage.py startapp posts
运行该命令后,它应该在Django项目中创建一个新的应用程序,就像这样。

注册该应用
当你在Django项目中添加一个应用程序时,它必须在settings.py文件中注册,像这样。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'posts'
]
文件 Django项目和应用程序
这里的表格显示了在Django项目中创建的根应用程序中包含的所有文件和文件夹,以及用startapp命令创建的文件和文件夹。
| Django项目的根应用程序 | 用startapp命令创建的应用程序 |
| __init__.py | migrations |
| asgi.py | 移植.py |
| 设置.py | admin.py |
| urls.py | apps.py |
| views.py | models.py |
| wsgi.py | 测试.py |
| views.py |
模块化的URLs
创建一个新的应用程序并没有为我们创建一个新的urls.py文件。一个惯例是在任何应用程序文件夹中添加一个urls.py文件,这样你就可以在自己的目录中拥有与该应用程序相关的路由。因此,我们将继续前进,并将urls.py文件添加到我们的 **posts**应用程序添加一个urls.py文件。

现在在 urls.py 文件中,我们要遵循我们已经学过的相同的流程。在我们的例子中,当用户访问应用程序的主页时,我们想显示一个帖子的列表。这将使我们开始。
posts/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list)
]
现在我们需要在views.py文件中添加post_list()函数。
posts/views.py
from django.shortcuts import render
def post_list(request):
return render(request, 'posts/post_list.html')
命名模板
上面的函数试图渲染一个post_list.html模板文件,该文件存在于post目录中。我们还没有在 **posts**应用程序中创建,但我们现在可以这样做。

这就是我们在Django中为应用程序添加模板文件夹时遇到的命名规则。按照惯例,当你在一个应用中添加一个模板文件夹时,你会在其中放置一个与应用名称相匹配的文件夹。在我们的例子中,我们有一个 **posts**应用,所以在templates里面还有一个post的文件夹。这意味着我们可以把post_list.html模板文件放在这个文件夹里。需要进行命名,这样如果Django项目中的各种应用有任何相同名称的模板文件,Django就会知道该渲染哪个模板。

我们可以放一些简单的Html标记来让我们开始。
posts/templates/posts/post_list.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Posts</title>
</head>
<body>
<h1>Posts List</h1>
</body>
</html>
包括URLs
为了使定义在Django应用程序中的urlpatterns产生任何效果,它们需要被包含在Django项目根的主urls.py文件中。你可能记得在之前的教程中,我们已经在djangoblog/urls.py文件中定义了一些urlpatterns。为了激活post/urls.py中的urlpatterns,我们可以在基础urls.py文件中添加以下高亮行。
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.home),
path('admin/', admin.site.urls),
path('posts/', include('posts.urls')),
path('about/', views.about)
]
上面的代码为我们做了以下事情。如果用户用浏览器访问Django应用程序,并在URL中包括 **/posts**在URL中,那么Django会说好的,使用存在于posts文件夹中的urls.py文件来处理。
现在我们可以试着访问[http://127.0.0.1:8000/posts/,看看这个动作。我们在post应用程序中的新模板文件被完美地显示出来了!

Django应用与项目总结
在使用Django的过程中,有两个非常常用的命令。
- django-admin.py startproject
- python manage.py startapp
第一个命令是让你的Django项目启动。一旦主项目创建完毕,你就可以使用python manage.py startapp命令来向Django项目添加应用程序。一个Django项目可以包括许多应用,每个应用都有特定的用途。在本教程中,我们添加了一个post应用程序,在我们继续使用Django时,它将成为发布博客文章的应用程序。