Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用多个表构造Django文件夹?_Django - Fatal编程技术网

如何使用多个表构造Django文件夹?

如何使用多个表构造Django文件夹?,django,Django,对于如何为使用四个表的应用程序构建文件夹,我感到困惑。我应该为每个表创建一个不同的url.py并将它们放在一个文件夹中吗?我应该在每个文件夹中包含views.py吗?那forms.py呢 我的结构是: db\U项目-->db\U应用程序 在db_应用程序下有一个包含4个表的数据库,我们将它们称为a、b、c和d。每个表都有一个向表中添加数据的表单以及一个列表视图 我应该在db_应用程序下创建一个a、b、c和d文件夹,然后在每个文件夹中创建URL、视图和表单吗?或者我应该只创建一个包含4个表的所有信

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

我的结构是: db\U项目-->db\U应用程序

在db_应用程序下有一个包含4个表的数据库,我们将它们称为a、b、c和d。每个表都有一个向表中添加数据的表单以及一个列表视图

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

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


谢谢

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

将四个表定义(models.Model子类)放入models.py,将四个表单放入forms.py,将所有视图放入views.py,并将这些视图的所有URL放入urls.py

如果您编写的某些代码在逻辑上与您现在编写的代码是分离的,例如完全独立的应用程序或相关但代表一整套不同功能的应用程序,则创建另一个应用程序文件夹(使用manage.py startapp)

顺便说一句,如果你需要从另一个应用程序访问一个应用程序中的模型,你可以这样做,这不是问题。您只需将模型类从一个应用程序导入到另一个应用程序中,例如:从app3导入
。模型导入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中的已安装应用列表中会有“app2”和“app3”


在本例中,“主”应用程序没有自己的URL,但完全可以拥有它们。也不一定要有多个应用程序,如果这对你有意义的话,你可以在一个应用程序中做任何事情。

谢谢你的回答。我仍然面临的问题是如何路由URL。将有url.com/a、url.com/b等,每个都带有/new、/edit等。如果我处理/a/b。。。项目url.py中的部分,它们将不会传递到app url.py,我将不得不使用不同的名称。我必须创建单独的URL.py文件吗?django鼓励您使用的文件夹结构(阻力最小的路径)是一个主myprojectname项目文件夹,其中至少有一个应用程序文件夹也称为myprojectname。。这将是您的“主”应用程序,其中包含settings.py和主URL.py。这可能是您唯一的应用程序,在这种情况下,它的url.py将包含您所有视图的URL。如果它不是您的唯一应用程序,那么您的主URL.py可以包含所有其他应用程序的URL.py。