首页 > 解决方案 > 我如何将一些数据播种到我的表中,这些数据是从 Django 中的特定外部 api 获取的?

问题描述

所以我的要求是我需要从 github api 获取一些数据并将其播种到我的 django api 应用程序的表中。因此,当应用程序运行时,它应该始终使用该数据播种。然后我需要使用已经使用 github api 数据播种的表数据制作一个 REST api。

我是初学者,我搜索了很多但找不到该怎么办?我已经创建了 mmy 函数来获取数据,并且我还根据我的要求创建了一个模型。我只需要知道我应该将该代码放在哪里,以便在应用程序运行时为我的表播种,以便我可以使用该表数据创建一个休息 api ..

这是数据获取代码(我目前已将其作为一个函数来查看它是否工作)

def apiOverview(request):
    
    mainarr=[]
    url = 'https://api.github.com/repos/afhammk/components/contents'
    
    try: 
        r = requests.get(url, auth=("afhammk","token"))
        fish = r.json()
        
        for ele in fish:
            
            try:
                desc=requests.get("https://api.github.com/repos/afhammk/components/contents/"+ele["name"]+"/description.txt?ref=main"
                ,auth=("afhammk","token")).json()
                content=str(base64.b64decode(desc["content"]))
                name=content.split("'")[1::2][0]
                description=content.split("'")[1::2][1]
                y=Task(component=ele["name"],url=ele["html_url"],owner=name,description=description)
                y.save()
                
          
            except:
                mainarr=["cant fetch second url"]
    except:
        mainarr=["cant fetch first url"]

下面是我创建的模型


class Task(models.Model):
    component=models.CharField(max_length=200)
    owner=models.CharField(max_length=200)
    description=models.CharField(max_length=200)
    url=models.CharField(max_length=200)

    def __str__(self):
        return self.component

标签: djangoapirest

解决方案


推荐阅读