Можно ли импортировать данные из локального файла csv в Django?

мне нужно разработать систему поиска, в которой мы собираемся импортировать данные из csv файла, который является локальным файлом на нашем компьютере, я хочу импортировать csv файл в django, чтобы сохранить его значение в словаре. но я не могу импортировать данные в django.

здесь код и изображение,

in this image you can see error

а это код файла view.py, в котором я добавляю csv

from unicodedata import name
from django.shortcuts import redirect, render
from django.http import HttpResponse
from django.template import context
import csv

def index(request):
    context = {'name':'xyz'}
    file = open("railway_stations.csv")
    csvreader = csv.reader(file)
    rows = []
    d = dict()
    for row in csvreader:
       rows.append(row)
    for r in rows:
       d.update({r[0]:r[1]})
       print(r[0]) 

    print(d["Prescot"])
    file.close()
    return render(request, 'home.html',context)

и мой файл railway_stations.csv имеет следующий вид click on this image to see directory of csv file\

пожалуйста, подскажите, кто может это сделать. (кому импортировать csv в файл view.py)

Я только что попробовал простой import csv для импорта csv, Я ожидаю, как импортировать файл csv в файл view.py, чтобы я отобразил все данные в html-файле.Также я сделал это в python в порядке, но теперь я столкнулся с трудностями в django

или вы можете также предложить мне хороший способ импортировать файл csv и показать все данные в html или в браузере.

Добавьте ваш файл в папку static и в файле представления поместите следующее :

from unicodedata import name
 from django.shortcuts import redirect, render
 from django.http import HttpResponse
 from django.template import context
 //add this line
 from django.templatetags.static import static


    import csv
    
    def index(request):
        context = {'name':'xyz'}
        file = open(static('railway_stations.csv'))
        csvreader = csv.reader(file)
        rows = []
        d = dict()
        for row in csvreader:
           rows.append(row)
        for r in rows:
           d.update({r[0]:r[1]})
           print(r[0]) 
    
        print(d["Prescot"])
        file.close()
        return render(request, 'home.html',context)

Вы можете импортировать файл csv в django, используя папку static.

сначала вам нужно создать папку в вашем приложении (где находится manage.py) и добавить путь к ней в setting.py see image here

как можно проверить работает или нет эта настройка в вашем браузере, например

like this

и вставьте ваш csv файл в вашу папку static folder как вы видите мою папку

here

теперь добавьте путь к каталогу файла csv в view.py файл

Модифицированный код выглядит следующим образом

from unicodedata import name
from django.shortcuts import redirect, render
from django.http import HttpResponse
from django.template import context
import csv

def index(request):
    context = {'name':'xyz'}
    file = open("static/railway_stations.csv")
    csvreader = csv.reader(file)
    rows = []
    d = dict()
    for row in csvreader:
       rows.append(row)
    for r in rows:
       d.update({r[0]:r[1]})
       print(r[0]) 

    print(d["Prescot"])
    file.close()
    return render(request, 'home.html',context)

теперь запустите сервер и тогда вы не сможете найти никакой ошибки.

csv значение выводится в моей консоли, как вы можете видеть на этом изображении

here

here

что это, это работает нормально для меня

Вернуться на верх