Django项目中创建多个App并配置URL路由的完整指南

Ada
Ada
发布时间:2026-10-14| 6人浏览过
原创

本文详细讲解如何在Django项目中创建并管理多个App。内容涵盖通过命令行创建新App、在子目录中组织代码以保持项目整洁、配置settings.py添加应用路径,以及在主urls.py中正确引入子应用路由。通过具体代码示例,展示如何从创建app2到编写views.py,最终实现前端页面通过href调用指定URL的完整流程。

创建第二个App及基础配置

1、创建第二个app

假设我们的Django项目P中已经存在一个默认生成的app,名为app1。现在,我们需要在此基础上创建第二个app,将其命名为app2。

打开PyCharm集成开发环境下方的Terminal(终端)窗口,执行以下命令来生成新的app:


python manage.py startapp app2

此外,为了便于区分不同app的路由规则,建议在每个app目录下单独建立一个urls.py文件。

在PyCharm中,右键点击目标app文件夹,选择“New”(新建),然后选择“Python File”(Python文件),将文件名命名为urls,点击确定即可完成创建。

2、设置url.py

(1)配置项目根目录下的P\urls.py文件

我们需要在根目录的urls.py中引入app2的路由模块,并添加对应的路径引导。具体实现代码如下:


from app2 import urls as app2_urls
urlpatterns = [
    path('app2/',include(app2_urls)), # 将所有以app2开头的urls,都交给app2(app名)下的urls.py处理    
]

(2)配置app2目录下的urls.py文件


from django.urls import path
from app2 import views
urlpatterns = [
    path('index/', views.index),
]

3、编写app2下的views.py


from django.shortcuts import render,HttpResponse
# Create your views here.
# 绑定博客
def index(request):
    return HttpResponse(111)

4、HTML页面如何调用URL

在HTML模板中,通常通过href属性或src属性来引用URL,写法示例如下:


href="/app2/index/" rel="external nofollow" 

完成上述配置后,即可正常访问。

优化Django多App项目结构

内容扩展:

Django项目下创建多个app

本示例基于Django 2.0版本构建的项目环境。

以往在项目中建立app通常只创建一个,但近期因业务需求,需要在单个Django项目下管理多个app。最简单的方法是将所有app直接放置在与manage.py文件同级的目录下,但这会导致项目根目录下的文件夹数量激增,显得臃肿不堪,对于追求代码结构整洁的开发者来说,这种目录结构令人难以接受。

因此,我采用将多个app集中放置于同一个子文件夹内的方式来优化项目结构。


myDjango
  ├───.idea
  │  └───inspectionProfiles
  ├───Apps
  │  ├───app01
  │  │  ├───migrations
  │  │  │  └───__pycache__
  │  │  └───__pycache__
  │  └───app02
  │    ├───migrations
  │    │  └───__pycache__
  │    └───__pycache__
  ├───myDjango
  │  └───__pycache__
  └───templates
    ├───app01
    └───app02

以项目名称myDjango为例,我将所有创建的app统一放置在Apps文件夹内。这种做法使得整个项目的目录结构看起来更加清爽。对于模板文件(templates),也采取了类似的做法,将不同应用的模板分别存放在各自的子目录下。为了使URL路径看起来更加清晰合理,我在每个应用中额外添加了一个urls.py文件,以便在项目根目录的urls.py中进行统一引用。

完成目录结构调整后,需要在myDjango目录下的settings.py文件中进行相应配置,添加以下代码以指定app的搜索路径:


sys.path.insert(0, os.path.join(BASE_DIR, 'Apps'))

配置完成后,还需要在myDjango目录下的urls.py文件中添加对应的路径映射,以便路由能够正确分发请求。


from django.contrib import admin
from django.urls import path, include
 
urlpatterns = [
  path('admin/', admin.site.urls),
  path('app02/', include("Apps.app02.urls")),
  path('app01', include("Apps.app01.urls")),
]

至此,基本完成在一个Django项目中设置多个app的所有步骤。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。