如何使用数据库在Django中的应用程序之间交换数据?

Efr*_*aín 3 python django

我正在使用Django在网络上工作.我创建了2个应用程序:一个用于客户端注册,并将其数据添加到数据库,另一个应用程序供用户访问和查看交互式界面.我们的想法是使用第二个应用程序从数据库中的客户端获取数据,并使用它向用户显示一些信息.

我的问题是我不明白如何使第二个应用程序从数据库中获取信息.我是否需要在第二个应用程序的model.py上创建相同的模型?或者我如何使第二个应用程序使用Queryset从数据库中检索数据?

我不知道是否有必要说我正在使用MySql数据库.

Wto*_*wer 5

您不需要两次定义相同的模型.实际上,您不应该出于多种原因,例如数据应该位于数据库中的一个位置(表名称是根据应用程序名称和迁移模型生成的),并且您不应该重复代码(DRY) .

您可以在应用程序中定义它们应该属于的模型(这完全是一个设计决策).将为适当的应用程序创建迁移.

然后,在第二个应用程序中,您只需从第一个应用程序导入您要使用的模型,并构建您喜欢的任何查询.例:

APP1/models.py

from django.db import models

class Node(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField()
    body = models.TextField(blank=True)
Run Code Online (Sandbox Code Playgroud)

APP 2/views.py

from django.views.generic.detail import DetailView
from app1.models import Node

class NodeView(DetailView):
    model = Node
    template_name = 'app2/index.html'
Run Code Online (Sandbox Code Playgroud)