Django:是否可以从另一个网站下载csv文件,然后通过Django shell将其添加到FileField?

时间:2019-05-29 18:03:56

标签: django

在使用Django时,当我需要对数据库中的数据进行某些操作时,我一直都在使用Django shell。这次,我想在Django Shell中执行以下情形。

我有一个带有许多商店的模型商店。在Django Shell中, 1.导入商店模型 2.使用每个商店名称搜索每个名称,然后根据每个商店名称下载一个csv文件。 3.将下载的csv文件添加到Store模型中的FileField中。

我知道如何#1和#3,但是我对如何做到#2感到困惑。如何在Django Shell中输入商店名称并从商店名称下载csv文件?

1 个答案:

答案 0 :(得分:0)

您可以使用requests库从Internet上获取数据。像这样安装它:

pip install requests

然后,在Django中,您可以使用ContentFile将下载的数据保存到FileField中。这是一个示例:

import requests
from django.core.files.base import ContentFile
from .models import SomeModel

response = requests.get('https://raw.githubusercontent.com/wireservice/csvkit/master/examples/test_geo.csv')

s = SomeModal.objects.get(id=0)
s.file_field.save('data.csv', ContentFile(response.content))
s.save()