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

标签 python django

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

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

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

最佳答案

您不需要定义相同的模型两次。事实上,出于多种原因,您不应该这样做,例如数据应该位于数据库中的一个位置(表名是根据应用程序名称和迁移模型生成的),并且您不应该重复代码(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)

app2/views.py

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

class NodeView(DetailView):
    model = Node
    template_name = 'app2/index.html'

关于python - 如何使用数据库在 Django 中的应用程序之间交换数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42424955/

相关文章:

python - Django:如何声明项目范围的模板上下文处理器?

django - 如何将当前用户设置为 Django Rest Framework 中的用户字段?

Python函数求等边三角形的一点

python - 修改损失函数中的真实值

python - 在 Django 中更改图像类型

django - 我可以从 2 个不同的 apache 虚拟主机提供一个 Django 应用程序吗?

python - 有太多 uwsgi OSError 消息

python - 使用 matplotlib 标注某些点

python - Python 3 字典迭代中的性能 : dict[key] vs. dict.items()

python - 与切片和聚合表相关的基本 panda 问题