首页 > 解决方案 > 如何使用 Django 连接两个 MySql 数据库表并从它们中获取数据并使用 Django Rest Framework 在浏览器中查看?

问题描述

实际上,我使用 Django 和 MySql 数据库在 python 中编写了一个代码来连接两个表并从这两个表中获取数据并使用 Django Rest Framework 在浏览器中查看它们......我想使用原始 sql 查询来这样做,我已经这样做了但它不起作用......我正在发布代码。谁能帮帮我...???是的,我正在使用分页...数据仅来自一张表...请帮助...

视图.py

 @api_view(['GET','POST'])

 def index(request):

  if request.method=='GET':

     all_dataobj=fetchdata.objects.raw("SELECT fetchdata.*, 
     fetchdata_dum.* 
     FROM fetchdata LEFT JOIN fetchdata_dum ON fetchdata.id = 
     fetchdata_dum.fetchdata_id")

     paginator = CustomPagination()
     result_page = paginator.paginate_queryset(all_dataobj, request)

     pserializer=fetchdataSerializers(result_page,many=True)

     return paginator.get_paginated_response(pserializer.data) 

     # return Response(pserializer.data,status=status.HTTP_201_CREATED)

  elif request.method=='POST':

   serializer=fetchdataSerializers(data=request.data)

    if serializer.is_valid():

        serializer.save()

    return Response(serializer.data,status=status.HTTP_201_CREATED)
    return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

模型.py

from django.db import models

class fetchdata(models.Model):
  id = models.IntegerField
  first_name = models.CharField(max_length=250)
  middle_name = models.CharField(max_length=15)
  last_name = models.CharField(max_length=250)
  email = models.CharField(max_length=250)
  ma_id = models.CharField(max_length=250)
  menu_item_id = models.CharField(max_length=250)
  item_id = models.CharField(max_length=250)
  meta_key = models.CharField(max_length=250)
  meta_value = models.CharField(max_length=250)
  date_added = models.CharField(max_length=250)
  date_updated = models.CharField(max_length=250)

    class Meta:
      db_table = 'fetchdata'

class fetchdata_dum(models.Model):
  id = models.IntegerField
  fetchdata_id = models.IntegerField
  first_name = models.CharField(max_length=250)
  middle_name = models.CharField(max_length=15)
  last_name = models.CharField(max_length=250)
  email = models.CharField(max_length=250)
  ma_id = models.CharField(max_length=250)
  menu_item_id = models.CharField(max_length=250)
  item_id = models.CharField(max_length=250)
  meta_key = models.CharField(max_length=250)
  meta_value = models.CharField(max_length=250)
  date_added = models.CharField(max_length=250)
  date_updated = models.CharField(max_length=250)

    class Meta:
       db_table = 'fetchdata_dum'

标签: djangopython-3.xdjango-rest-framework

解决方案


推荐阅读