gpt4 book ai didi

python - Django Rest Framework 未从我的数据库检索数据

转载 作者:行者123 更新时间:2023-12-01 00:45:51 25 4
gpt4 key购买 nike

我正在创建一个 API 端点来从 Mongo 数据库检索数据,以便在我的前端使用它。

在我的项目中,我使用两个数据库:sqlite 数据库和 Mongo DB。

在Mongo数据库中,有一个名为tst的集合,里面有一些数据。我创建了端点,但在浏览器上打开 api 后,我没有看到从集合中检索到 json 数据,就好像它没有在正确的位置查找一样。

有人可以帮我找出我做错了什么吗?

这是我的模型:

class tst(models.Model):
id = models.CharField(max_length=100)
ticker = models.FloatField()

def save(self, *args, using=None, **kwargs):
super(tst, self).save(*args, using='dbtwo', **kwargs)

这是我的观点:

class tstList(generics.ListCreateAPIView):
queryset = tst.objects.using('dbtwo').all()
serializer_class = tstSerializer

这是序列化器:

class tstSerializer(serializers.ModelSerializer):

class Meta:
model = tst
fields = ('id', 'ticker', )

网址:

path('tst/', views.tstList.as_view()),

最佳答案

因此,我像您一样设置了 2 个数据库,稍微更改了代码,向数据库添加了 2 个 tst 对象,并在我的 API 中检索了这 2 个 tst 对象的 JSON 数据打电话。

我通过将 primary_key=True 添加到 id 字段稍微更改了 models.py

# models.py

class tst(models.Model):
id = models.CharField(primary_key=True, max_length=100)
ticker = models.FloatField()

def save(self, *args, using=None, **kwargs):
super(tst, self).save(*args, using='dbtwo', **kwargs)

我更改了 views.py,因此它使用 ModelViewSet像这样:

# views.py

from rest_framework import viewsets

class tstList(viewsets.ModelViewSet):
queryset = tst.objects.using('dbtwo').all()
serializer_class = tstSerializer

我没有对序列化器进行任何更改,所以我的序列化器看起来像这样:

# serializers.py

class tstSerializer(serializers.ModelSerializer):

class Meta:
model = tst
fields = ('id', 'ticker',)

最后在 urls.py 中我使用了 DefaultRouter()并将 tstList View 注册为端点,如下所示:

# urls.py

from rest_framework import routers
# imported tstList view here

router = routers.DefaultRouter()

router.register(r'test', views.tstList, base_name='test')

然后我在终端中运行以下命令:

  • manage.py makemigrations
  • manage.py migrate --database dbtwo
  • manage.py runserver

然后,我创建了两个 tst 对象,其 ticker 字段具有随机浮点值。

GET 请求和结果

当我现在向 http://127.0.0.1:8000/test/ 发出 GET 请求时,我得到以下结果:

[
{
"id": "1",
"ticker": 1.2
},
{
"id": "2",
"ticker": 1.7
}
]

关于python - Django Rest Framework 未从我的数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56994156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com