Hi guys, I need some help to insert a link to download a file. In a view I read data from a csv file and I show them in a table in a template. Under the table I need to insert, when there are data,
a link similar as Download data and when user click it, he download the datafile, previously I wrote the same data in a csv file. You can see a part of interested view and the template to show data.
In the code doesn't download anything.
listafile = os.listdir('static/dati')
fileok=[]
context={}
i=0
for file in listafile:
inizio=str(file[0:4]).strip()
if inizio==anno:
fileok.append(file)
elif inizio=='coun':
contaf=str(file[6:10]).strip()
if contaf==anno:
fileok.append(file)
else:
pass #print "File NON trovato", inizio, anno
for nomefile in fileok:
nomedato=str(nomefile[5:-4]).strip()
if nomedato==tipodati:
path2file=str(("static/dati/"+str(nomefile)).strip())
with open(path2file) as f:
for line in f:
riga = line.split(";")
if riga[0]==cciaa:
context[i]=line
i=i+1
#print "context", context
d2 = { k:v.split(";") for k,v in context.items() }
j=0
datilist={}
field_names = ['Provincia CCIAA', 'Data Ora', 'Numero REA', 'Forma Giuridica', 'Count dati']
f=open('static/tmp/dati.csv', 'w')
writer = csv.writer(f) #questa definisce la variabile writer usata x scrivere i dati nel file csv!!!
writer.writerow(field_names)
while j<len(d2):
datilist[j]=[d2[j][0], d2[j][3], d2[j][5], d2[j][7], d2[j][10].rstrip(), ''] #
writer.writerow(datilist[j])
j=j+1
return render_to_response('showdata.html', context_instance=RequestContext(request, {'dictdati': datilist} ))
else:
return render_to_response('home.html', context_instance=RequestContext(request, {'var': d} ))
def showdata(request):
return render_to_response('showdata.html', context_instance=RequestContext(request, context))
showdata.html
<div class="container">
<div class="jumbotron">
<h1>Statistiche Dkey</h1>
<p>Ecco in forma tabellare i dati richiesti..</p>
<form method="post" action="/getdata/">
<style>
table { width: 90%; background-color: #FFFFFF; color: #000000; }
th, td { width: 4%; }
</style>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<thead>
<tr>
<th>Nome</th>
<th>Data_Ora</th>
<th>Numero</th>
<th>Forma</th>
<th>Count</th>
</tr>
</thead>
<tbody>
<tr>
{% for key, item in dictdati.items %}
{% for idx in item %}
{% if idx != '' %}
<td>{{ idx }}</td>
{% else %}
<tr><td></td></tr>
{% endif %}
{% endfor %}
{% endfor %}
<tr>
</tbody>
</table>
</form>
<p><a href="{{ MEDIA_URL }}/dati.csv">Download dei dati</a><p>
</div>
</div> <!-- /container -->
Thanks.