Django:从开源API获取数据 [英] Django: Fetching data from an open source API

查看:24
本文介绍了Django:从开源API获取数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用https://date.nager.at/swagger/index.html处的文档从https://date.nager.at/获取法国、澳大利亚和德国的公共假日数据,并将其存储在JSON文件中。

到目前为止,我已经创建了一个具有自己的URL的端点/FETCH_AND_SAVE,但只能在views.py文件中写入伪数据。如何通过Django获取上面的数据并将其存储在数据库中?

编辑:我被要求显示代码。 我跑了

python3 manage.py startapp fetch_and_save

创建抓取应用程序,我在Storefront/urls.py中有以下URL模式:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('fetch_and_save/', include('fetch_and_save.urls')),
]

然后我在FETCH_AND_SAVE/views.py:

中添加了函数
def say_hello(request):
    return HttpResponse('Fetch the data from date.nager.at here')

我在FETCH_AND_SAVE/urls.py:

中调用了它
urlpatterns = [
    path('', views.say_hello)
]

就是这样。这只是一款Hello World应用程序。

推荐答案

这里有一些提示,如何以简单的方式做到这一点:

fetch_and_save/views.py

import json
import requests


def get_public_holidays(request, year, tag):
    response = requests.get(f'https://date.nager.at/api/v2/PublicHolidays/{year}/{tag}')
    with open(f'public_holidays_{tag}_{year}.json', 'w') as outfile:
        json.dump(response.text, outfile)
    ...

fetch_and_save/urls.py

urlpatterns = [
    path('<int:year>/<str:tag>/', views.get_public_holidays)
]

然后,如果添加e./2020/DE,您将获取德国的公共假日2020,并将其保存到名为public_holidays_DE_2020.json的json文件中。

这篇关于Django:从开源API获取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆