能否在Django中导入本地csv文件数据?

Can we import local csv file data in Django?

我不想开发一个搜索系统,我们将在其中从我们计算机中的本地文件 csv 文件导入数据,我想在 django 中导入 csv 文件以将其值存储在字典中。但我无法在 django 中导入数据。

这里是代码和图片,

这是 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 文件如下图 \

请建议我由谁来做。 (谁将 csv 导入 view.py 文件)

我只是尝试简单的导入 csv 来导入 csv, 我期待如何在 view.py 文件中导入 csv 文件,以便我在 html file.also 中呈现所有数据我在 python 中以很好的方式进行,但现在我在 django 中遇到困难

或者您也可以建议我导入 csv 文件并在 html 或浏览器中显示所有数据的好方法。

将您的文件添加到静态文件夹并在视图文件中放置:

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)

您可以使用静态文件夹在 django 中导入 csv 文件。

首先你必须在你的应用程序中创建文件夹(manage.py 所在的位置) 并将它的路径添加到 setting.py

如何在您的浏览器中检查此设置是否有效,例如

并将您的 csv 文件粘贴到您的 static folder 中,如您所见我的文件夹

现在将 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 值打印在我的控制台中,如您在此图片中所见

是的,它对我来说很好用