Thanks.
My solution:

urls.py
url(r'^download/$', 'views.download', name='download'),

template.html
<p><a href="/download/">Download dei dati</a><p><p><a 
href="home">Indietro</a></p> 

views.py
def download(request):
data = open(os.path.join(settings.MEDIA_ROOT, 'static/tmp/dati.csv'), 
'r').read()
resp = HttpResponse(data, mimetype='application/x-download')
resp['Content-Disposition'] = 'attachment; filename=dati.csv'
return resp
it works!


Il giorno giovedì 31 agosto 2017 17:58:27 UTC+2, giuseppe ricci ha scritto:
>
> 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.
>
> views.py 
>
> 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 -->
>
>
>
>
> Can someone give me some suggestion? Other posts didn't aided me. 
> Thanks.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/1fca0b1e-a952-4694-9bdb-177f1ac6b69c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to