簡體   English   中英

Django Rest Framework無法從我的數據庫中檢索數據

[英]Django Rest Framework not retrieving data from my database

我正在創建一個API端點以從Mongo數據庫檢索數據,以便在前端使用它。

在我的項目中,我使用了兩個數據庫:sqlite數據庫和Mongo數據庫。

在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數據。

我通過在id字段中添加primary_key=True來稍微更改了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視圖注冊為這樣的端點:

# 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
    }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM