27 марта 2012

Pylons обработка csv с веб формы (метод POST)

Небольшой "хинт" как при помощи Pylons обрабатывать CSV файлы, отправленные из формы.
Создаем шаблон
<form action="" method="POST" enctype="multipart/form-data">
CSV file: 

</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")

Комментариев нет:

Отправить комментарий