我如何用多个表构建Django文件夹



我感到困惑,我应该如何结构文件夹的应用程序,使用四个表。我应该为每个表创建不同的url .py并将它们放在一个文件夹中吗?我应该在每个文件夹中包含views.py吗?form .py呢?

我的结构是这样的:Db_project -> db_app

在db_app下有一个数据库,有4个表,我们将它们命名为a, b, c和d。每个表都有一个表单,可以向表中添加数据以及列表视图。

我应该在db_app下创建a, b, c和d文件夹,然后在每个文件夹中创建url,视图和表单吗?或者我应该只是做一个文件与所有信息的4个表,只是处理所有路由在一个单一的url .py文件下的db_app?

另外,我可以在同一个文件夹中创建4个urls.py文件,并将它们命名为a_urls.py等吗?或者Django是否要求文件名严格为urls.py?

谢谢!

不,这是不必要的,也是不可取的。如果所有的表单和表(模型)在逻辑上是同一个应用程序的一部分,那么将它们放在db_app下。

将四个表定义(模型)模型子类)放入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')),
)

然后,你会有'app2'和'app3'在你的INSTALLED_APPS列表在yourproject/yourproject/settings.py

在这个例子中,master应用程序没有自己的url,但它完全可以拥有它们。也没有必要有多个应用程序,如果你觉得有意义的话,你可以在一个应用程序中做所有的事情。

最新更新