我有这段代码但是当我尝试将a
放到上下文视图时它不起作用。我是这方面的初学者。非常感谢你的帮助!
from django.shortcuts import render, render_to_response, RequestContext
import csv
a = []
with open('test.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
a.append(row)
def home (request):
return render_to_response("home.html", locals(), context_instance=RequestContext(request))
答案 0 :(得分:1)
关于标识,您需要使用4个空格来编写Python。
试试这个:
from django.shortcuts import render, render_to_response, RequestContext
import csv
def get_data():
with open('test.csv', 'rb') as csvfile:
a = []
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
a.append(row)
return {'csvdata': a}
def home(request):
return render_to_response('home.html', get_data(), context_instance=RequestContext(request))
然后,您应该可以在模板中使用a
名称来呼叫csvdata
。
答案 1 :(得分:0)
问题是a
是全局范围内的名称,因此不属于locals()
。而不是locals()
,而是显式传递模板所需的参数(例如a
)。
答案 2 :(得分:0)
from django.shortcuts import render, render_to_response, RequestContext
import csv
def home(request):
with data as csv.reader( open('myfile.csv', 'r'), delimiter=','):
return render_to_response('home.html', {'data': data}, context_instance=RequestContext)
我编写的代码中的 data
应该包含行列表。