Django多App项目URL配置与跨App调用详解

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

本文详细介绍Django项目中配置多个App的URL路由方法。通过示例展示如何在主urls.py中分发请求至各App,并配置各App的独立urls.py与views。同时涵盖settings.py中的App注册及启动服务命令,最后说明如何在不同App间通过导入models实现跨App数据访问。

Django多App项目初始化与基础配置

首先进行快速测试,创建Django项目并生成多个App。

执行以下命令创建名为mysite的项目,并分别创建app1和app2两个应用: django-admin startproject mysite django-admin startapp app1 django-admin startapp app2

主路由与子应用URL配置

接下来配置mysite项目根目录下的urls.py文件,作为主路由入口。


from django.contrib import admin
from django.urls import include, path

urlpatterns = [
  path('admin/', admin.site.urls),
  path('app1/', include('apps.app1.urls',namespace='app1')),
  path('app2/', include('apps.app2.urls',namespace= 'app2')),
]

在app1中创建apps.py文件,定义应用配置类。


from django.apps import AppConfig
class App1Config(AppConfig):
  name = 'apps.app1'

在app2中同样创建apps.py文件,定义对应的应用配置类。


from django.apps import AppConfig
class App2Config(AppConfig):
  name = 'apps.app2'

配置app1目录下的urls.py,定义该应用的路由规则。


from django.urls import path
from . import views

app_name = 'app1'

urlpatterns = [
  path('index', views.index),
]

配置app2目录下的urls.py,定义该应用的路由规则。


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

编写app1目录下的views.py,实现视图逻辑。


from django.shortcuts import render
from django.shortcuts import HttpResponse
def index(request):
  return HttpResponse('hello app1')

编写app2目录下的views.py,实现视图逻辑。


from django.shortcuts import render
from django.shortcuts import HttpResponse
def index(request):
  return HttpResponse('hello app2')

App注册与服务启动

在settings.py文件中注册App配置,确保Django能正确识别各应用。

在INSTALLED_APPS中添加具体配置路径:'apps.app1.apps.App1Config', 'apps.app2.apps.App2Config'

完成配置后,启动Django开发服务器进行测试。

使用命令启动服务并指定端口:python manage.py runserver 8080

启动成功后,通过浏览器访问对应的URL路径以验证配置是否生效。

跨App模型调用方法

在此架构下,若需在一个App中访问另一个App定义的Model,需进行特定导入操作。

使用标准导入语句:from apps.app名.models import 模型类

以上内容涵盖了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 算法库。