简体   繁体   English

下载 zip 并解析 django 中的 csv 文件,将数据复制到本地 DB(sqllite)

[英]Downloading zip and parsing csv file in django, copying data to local DB(sqllite)

I have a url, which downloads a zip file, containing a csv file.我有一个 url,它下载一个 zip 文件,其中包含一个 csv 文件。 I want to parse the data and import it to local Database(sqlite) in Django.我想解析数据并将其导入 Django 中的本地数据库(sqlite)。

In brief, input = url, pre-processing download.zip-> convert to.csv, output=csv rows in DB which has columns of csv as fields.简而言之,输入= url,预处理下载.zip->转换为.csv,输出=数据库中的csv行,其中有csv列作为字段。

Well, I think if you google a bit you can do it yourself.好吧,我想如果你谷歌一下,你可以自己做。 I will give you the keyword:我给你关键字:

  • For download a file you can you use request:要下载文件,您可以使用请求:

import requests导入请求

url = 'https://www.facebook.com/favicon.ico' r = requests.get(url, allow_redirects=True) url = 'https://www.facebook.com/favicon.ico' r = requests.get(url, allow_redirects=True)

open('facebook.ico', 'wb').write(r.content)打开('facebook.ico','wb').write(r.content)

  • To parse a csv file use xlsxwriter要解析 csv 文件,请使用 xlsxwriter

  • To save the data to database, I suggest you save the data to django model then call model.save()要将数据保存到数据库,我建议您将数据保存到 django model 然后调用 model.save()

To use django on standalone script read this要在独立脚本上使用 django,请阅读此

How to import Django Settings to python standalone script 如何将 Django 设置导入 python 独立脚本

To use it as a service you should use rest_framework and write a custom viewset like this.要将其用作服务,您应该使用 rest_framework 并编写一个像这样的自定义视图集。 I had quite a hard time get familiar with it, so good luck, but when you get long, drf is quite handy tool for everything, just not fast.我很难熟悉它,所以祝你好运,但是当你长时间使用时,drf 是非常方便的工具,只是速度不快。

https://medium.com/django-rest-framework/django-rest-framework-viewset-when-you-don-t-have-a-model-335a0490ba6f https://medium.com/django-rest-framework/django-rest-framework-viewset-when-you-don-t-have-a-model-335a0490ba6f

You should django settings to save the path to temp file.您应该设置 django 来保存临时文件的路径。 In linux you can use /tmp在 linux 中,您可以使用 /tmp

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM