在我的 Django 应用程序中,我收到了一个像这样的 JSON 请求:
{
"item1": false,
"item2": false,
"item3": "value",
"url": "http://downloadlink.example.net"
}
我必须保存除 url 之外的所有数据,我只需要通过它下载文本文件并将其保存在服务器上。如何进行下载部分?
查看代码:
class Collect(View):
@csrf_exempt
def dispatch(self, request, *args, **kwargs):
return super(Collect, self).dispatch(request, *args, **kwargs)
def post(self, request):
data = json.loads(request.body.decode())
try:
item1 = data["item1"]
item2 = data["item2"]
item3 = data["item3"]
url = data["url"]
new_row = ModelName(
item1=item1,
item2=item2,
item3=item3,
)
new_row.save()
except Error:
return HttpResponse("Unable to save")
return HttpResponse("Saved")
请您参考如下方法:
所以基本上你可以使用urllib图书馆,特别是它的 urlretrieve函数先将文件保存在本地临时文件夹中,然后您可以将其保存到任何您想要的地方。
import urllib
response = urllib.urlretrieve(url)
contents = open(response[0]).read()
f = open('filename.ext','w')
f.write(contents)
f.close()
这是如何从链接保存文件的基本示例。当您保存文件时,您应该包括完整路径,因此请确保在您的设置文件中创建一个 BASE_DIR 常量。您可以进一步在您的数据库中创建一个 FileField 或 ImageField 表,阅读 here更多示例。
