Как читать CSV-файл в базе данных mysql, используя Django - PullRequest
0 голосов
/ 16 июня 2020

Как читать CSV file в mysql databse, используя Django.

Я хочу прочитать csv file data using django и write this csv data в MySQL Базах данных .

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

вот решение, которое я понял из вашего вопроса

Прежде всего создайте кнопку просмотра, чтобы пользователь мог принимать CSV-файл в качестве входных данных, а затем сохранить его временно в папке static/upload приложений. Затем передайте путь этого файла в нашу функцию хранилища данных, представленную в views.py.

forms.py

from django import forms

class browse(forms.Form):
    file = forms.FileField()

views.py

import csv
import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode

def index(request):
    result = None
    form = None
    if request.method == 'POST':  
        form = browse(request.POST, request.FILES)  
        if form.is_valid():  
            handle_uploaded_file(request.FILES['file']) # store file in upload folder
            path = "static/upload/"+ str(request.FILES['file'])#path of selected file
            with open(path,'rt')as f:
                data = csv.reader(f)
                for row in data:
                    storedata(row) 
    else:
        pass

def storedata(row):
    connection = mysql.connector.connect(host='localhost',
                                         database='electronics',
                                         user='root',
                                         password='root')
    mySql_insert_query = """INSERT INTO Laptop (name, fname, lname) 
                           VALUES 
                           (row[0], row[1], row[2]) """

    cursor = connection.cursor()
    cursor.execute(mySql_insert_query)
    connection.commit()
    print(cursor.rowcount, "Record inserted successfully into Laptop table")
    cursor.close()        

models.py

from django.db import models

def handle_uploaded_file(f):
    with open('static/upload/'+f.name, 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)
0 голосов
/ 16 июня 2020

Взгляните на django -import-export , который охватывает именно этот вариант использования.

...