Mar 27, 2012
|
Небольшой “хинт” как при помощи Pylons обрабатывать CSV файлы, отправленные из формы.
Создаем шаблон:
<form action="" method="POST" enctype="multipart/form-data">
CSV file: <input name="csvfile" type="file">
<button>OK</button>
</form>
<table class="simpletable">
{% for data in c.data %}
<tr>
<td>{{ data[0] }}</td>
<td>{{ data[1] }}</td>
</tr>
{% endfor %}
</table>
Метод контроллера выглядит как то так:
# coding=utf8
import pylons
import csv
from cStringIO import StringIO
from pylons import request, response, session, tmpl_context as c, url
from myproject.lib.base import BaseController, render
class CsvController(BaseController):
def index(self):
data = request.POST.get('csvfile', '')
if data:
data = data.value
else:
return render("/example/csv/index.html")
f = StringIO(data)
c.data = []
for row in csv.reader(f):
c.data.append((row[0], row[5]))
return render("/example/csv/index.html")