Посты с тэгом wtforms


[Из песочницы] Flask. Наполняем «флягу» функционалом


Предисловие


В прошлом году решил для себя вплотную познакомиться c Python, а в последствии перебраться на него с PHP. На данный момент моя стезя — веб-разработка, а потому осваивать новый язык я начал именно со стороны веба, в частности, с обзора доступных фреймворков и проектов на них. Познакомившись с возможностями TurboGears, web2py, Django, я всё таки поддался «тренду» и погрузился в мир Django.

На протяжении почти года я честно пытался подружиться с ним. Написал несколько простеньких проектов, но монструозность фреймворка отпугивала, обилие «батареек» путало выбор, а с некоторыми ограничениями не хотелось мириться. Душа требовала лаконичности и однозначности, что в конечном счете привело меня к знакомству с Flask. Изучив документацию по фреймворку и смежным проектам (Jinja2, Werkzeug), я проникся идеологией и стал вплотную изучать фреймворк.

Flask позиционируется как расширяемый микрофреймворк. Это означает наличие лишь необходимого минимума


Flask-Admin

Доброе время суток.

Хочу представить проект, над которым работал в последнее время: Flask-Admin. Если в двух словах, это расширение для фреймворка Flask, которое позволяет быстро создавать административный интерфейс в стиле Django.
Читать дальше →



Добавляем поддержку optgroup в wtforms.fields.SelectField

Сейчас по работе начал использовать WTForms и все бы в них просто и понятно, и можно легко и быстро перейти к ним от Django forms, но один момент меня очень разочаровывал, отсутствие поддержки optgroup в SelectField для, например, следующих choices:

ROLE_CHOICES = (
    ('Content Creation', (
        ('project_manager', 'Project Manager'),
        ('writer', 'Writer'),
        ('editor', 'Editor'),
        ('senior_editor', 'Senior Editor'),
    )),
    ('Content Distribution', (
        ('dist_project_manager', 'Project Manager'),
        ('dist_content_publisher', 'Publisher'),
        ('dist_content_reviewer', 'Reviewer'),
    ))
)

Точнее есть, но какая-то уж очень неверная :) Ибо следующая форма,

from wtforms import fields, form


class SettingsForm(form.Form):

    default_role = fiel