benoitc 514a0ba0e3 change the way we handle last chunk, on't break but instead test if last
was an empty string. So we allows idiot content to send empty string at
first.
2010-03-19 10:00:15 +01:00

61 lines
1.4 KiB
Python
Executable File

# Create your views here.
import csv
import os
from django import forms
from django.http import HttpResponse
from django.shortcuts import render_to_response
import tempfile
class MsgForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField()
f = forms.FileField()
def home(request):
subject = None
message = None
size = 0
if request.POST:
form = MsgForm(request.POST, request.FILES)
print request.FILES
if form.is_valid():
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
f = request.FILES['f']
tmp = tempfile.TemporaryFile()
for chunk in f.chunks():
tmp.write(chunk)
tmp.flush()
size = int(os.fstat(tmp.fileno())[6])
else:
form = MsgForm()
return render_to_response('home.html', {
'form': form,
'subject': subject,
'message': message,
'size': size
})
def acsv(request):
rows = [
{'a': 1, 'b': 2},
{'a': 3, 'b': 3}
]
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=report.csv'
writer = csv.writer(response)
writer.writerow(['a', 'b'])
for r in rows:
writer.writerow([r['a'], r['b']])
return response