Django项目中应该有多少个应用程序。例如,我正在构建一个宠物应用程序,其中可以有主人、宠物、兽医等。
现在只坚持我提到的3个,我应该在Django项目中把它们作为单独的应用程序,还是应该只创建一个应用程序来处理所有事情。随着时间的推移,我将添加更多功能。
我的想法是创建一个项目
django-admin startproject mypets
然后为每个创建一个应用程序:
python manage.py startapp pet
和
python manage.py startapp pet_owner
和
python manage.py startapp veterianarian
正如我之前提到的,我将在我的应用程序中添加其他功能,如照片todo-like功能等。我担心我的项目会变得越来越大,这就是为什么我想将pet_owner
和pet
分别作为自己的应用程序。我原以为这正是我应该做的,但后来意识到,当我转到mypets.urls.py
文件并考虑将一些请求转发到路径时,我很快意识到我希望我的路由始终具有mypets/
。
urlpatterns = [
path('admin/', admin.site.urls),
path('mypets/petowner/', include('petowner.urls')),
path('mypets/pet/', include('pet.urls')),
]
但他们似乎是分开的,我不希望他们分开。例如。我关心拥有mypets/petowner/<petowner-id>/pets/
等。它们将彼此密切相关,我将在我的models
中使用关系。我想要的分离主要是为了组织和可读性。我不想有一个包含大量代码的文件models.py
——我认为这既丑陋又混乱。
我计划将来在我的前端使用React
,但因为我正在努力学习Django,我将坚持使用完整的Django应用程序并使用django-templates
。不确定这是否重要,但我想我会提一下以防万一。
这是个好主意,可以让项目更有条理,特别适合您如果你想在未来开发你的代码,这对你有好处如果你对url有问题,现在我有一个建议,你可以在你的应用程序中创建一个像url.py
这样的文件,其中包含你的应用的url,然后你可以回到你的主url并将其提供给url,你似乎知道这种方式
- 首先运行您的应用程序并制作它
- 现在可以应用folde并制作一个类似
urls.py
的文件 - 现在,您可以编写您的url,也可以按照您所知的方式在urlpattern中编写url
- 在完成之前,请确保在主
url.py
中包含
urlpatterns = [
path('', include('petowner.urls')),
path('admin/', admin.site.urls),
]
如果涉及太多,更改您的名称并在该应用程序中写入您的URL可能是件好事。通过这种方式,您可以更有条理地在app/urls.py
中提供前缀或任何内容