不,这不是必需的或不可取的。如果所有表单和表格(模型)在逻辑上都是同一个应用程序的一部分,那么请将它们全部放在您的 db_app 下。
将您的四个表定义(models.Model 子类)放入 models.py,将您的四个表单放入 forms.py,将所有视图放入 views.py,并将这些视图的所有 url 放入 urls.py。
如果您编写的代码在逻辑上与您现在正在编写的代码分开,例如完全独立的应用程序或相关但代表一组完全不同的功能的应用程序,则创建另一个应用程序文件夹(使用 manage. py startapp)。
顺便说一句,如果您需要从另一个应用程序访问一个应用程序中的模型,您可以这样做,这不是问题。您只需将模型类从一个应用程序导入另一个应用程序,例如:from app3.models import MySharedModel。但在这种情况下,您似乎还不需要它。
但是,假设您编写了一个应用程序来维护所有服装的数据库,然后您编写了一个应用程序来维护食谱列表。这些不太可能共享任何数据。但是两者都使用 auth 应用程序进行登录。如果您要为自己制作一个事件日历应用程序,那么谁知道..也许您会在日历应用程序和服装应用程序之间建立依赖关系,以便服装应用程序可以提醒你最喜欢的夏季套装需要在婚礼前一周去清洁工......
典型的文件夹布局是:
# the main project folder, containing manage.py
myproject/
# the main app,
# which contains your master settings.py and also master urls.py
# it can also contain views, models etc and have full app functionality
myproject/myproject
# a second app
# this also contains all the same files as usual but does not need
# settings.py, which is gotten from the myproject/myproject/settings.py
myproject/app2
# a third app
myproject/app3
# your myproject/myproject/urls.py:
from django.conf.urls import patterns, include, url
import app2.urls
import app3.urls
urlpatterns = patterns('',
url(r'^app2/', include('app2.urls')),
url(r'^app3/', include('app3.urls')),
)
然后,在 yourproject/yourproject/settings.py 中的 INSTALLED_APPS 列表中也会有“app2”和“app3”
在此示例中,“主”应用程序没有自己的 url,但它完全可以拥有它们。如果对您有意义的话,也不必拥有多个应用程序,您可以在一个应用程序中完成所有操作。