0

我现在正在做一个大的 django 项目。

巨大的主题门户,包含许多主题中心、书籍和其他媒体资料、作者资料和普通用户资料,他们也可以有作者资料。

现在我要做的是:

一个 django 应用程序,像往常一样的模板文件夹,现在随着我创建模板,模板的数量变得巨大..

我从未体验过在一个项目中拥有多个应用程序..

有人可以告诉我这是否可以,或者我是否应该使用多个应用程序?

或者如果我换一种方式:在一个项目中拥有多个应用程序什么时候有意义?

提前致谢

4

2 回答 2

2

Django 在拥有多个应用程序时茁壮成长。1个用户注册应用程序,1个个人资料应用程序,1个评论应用程序,1个博客发布应用程序等。

正如您所指出的,在一个应用程序中执行所有操作会很快导致混乱。使用 Django 的最佳方法是创建许多非常具体的应用程序。如果您愿意,这还允许您拥有更多可以在其他项目中重复使用的应用程序。

一个 Django 项目有几十种可能的“结构”。我会选择最模块化的方法。对于每一项功能,只需问问自己:这是否直接属于另一个应用程序?如果答案是否定的,那么您最好为它创建一个单独的应用程序。

例如,同一个博客发布应用程序可以在多个网站上使用,您只需更改模板以使其适合页面的新布局/设计。所有的逻辑应该大体相同。并且博客文章的逻辑不应与查看个人资料或其他内容的逻辑相关联。

示例:对于评论应用,模型可能如下所示:

from django.db import models

from profile.models import Profile
from blog.models import Blog

class Comment(models.Model):
    user = models.ForeignKey(Profile, related_name='comments')
    blog = models.ForeignKey(Blog, related_name='comments')
    message = models.CharField(max_length=200)
于 2013-12-17T13:39:01.770 回答
1

您可以拥有不依赖于其他应用程序的核心应用程序(很可能是这样的)

  • 带有核心模板视图和模型的核心应用程序(
  • 具有身份验证模板和模型的帐户
  • 包含有用内容的工具应用程序

和使用上述内容的“应用程序”应用程序

  • topiccenter1 - 特定模板、视图和模型
  • topiccenter2 - 特定模板、视图和模型

一个不错的结构是来自“Two Scoops of Django”的模板 https://github.com/twoscoops/django-twoscoops-project

“谢谢你,非常好的指导。我想知道因为所有模型都是相关的,如果我将它们分成多个应用程序,我不会破坏关系吗?”

您应该能够跨应用程序划分模型 - 阅读:

在 Django 的另一个应用程序中定义多对多关系

应用程序之间的 Django 关系:如何保持应用程序分离?

于 2013-12-17T14:12:21.050 回答