【发布时间】:2015-11-16 18:45:09
【问题描述】:
我想要一些清晰。我想了解更多关于 django 的信息并将其用作 php/laravel 的替代品。但是 django 的默认结构和约定让我有点困惑。
我的 PHP/Laravel 项目有 3 个部分:
- 管理
- 核心(普通用户的网络应用程序)
- API 服务(用于移动应用的 REST-API)
然而,所有的控制器、模型和视图都包含在一个 Laravel 应用程序中。我将 Auth、Admin、Api 控制器分离到它们自己的文件夹/命名空间中。
让我感到困惑的是默认的 Django 结构 1 视图 1 模型文件。如果我的每个控制器在我的 django 项目中都是一个单独的应用程序,或者我应该使用与 Laravel 中相同的方法,我应该如何在 Django 中重新设计这个应用程序。一个项目中有 3 个 Django 应用程序,一个用于管理,一个用于核心,一个用于 api?我应该把我的模型保存在哪里,因为在 Laravel 中所有模型都被所有 3 个部分使用?
我目前的结构:
./
./controllers/
./auth/
LoginController.php
RegistrationController.php
...
./admin/
ReportsController.php
UserController.php (Admins overview of all users)
...
./api/
HealthController.php (API CRUD for Health resource)
ExerciseController.php
HomeController.php
UserController.php (Regular users profile page CRUD)
...
./models/
User.php
Health.php
Exercise.php
...
【问题讨论】:
-
你能解释一下“默认的Django结构1视图1模型”吗?我认为您可能对一些简化的示例阅读过多。一个视图当然可以使用多个模型,并且模型可以被多个视图使用。使用来自其他应用程序的视图/模型的视图/模型也没有限制。
-
我的问题是关于如何在 django 中构建我的应用程序,而不是如何使用模型/视图。我的每个控制器是否有 1 个应用程序,我是否将所有控制器压缩到一个视图中……诸如此类。
-
我发现 Laravel 的组织与 Django 完全相反。您的所有模型都在模型文件夹中,而在 Django 中,模型、API、视图等都由应用程序分隔(所需功能的逻辑表示。在 Django 中太棒了!
标签: django