Задать вопрос
  • Flask как обрабатывать select field?

    GeraJet
    @GeraJet
    Anykey
    forms.py
    # -*- coding: utf-8 -*-
    from flask.ext.wtf import Form
    from wtforms import TextField, SelectField
    from wtforms.validators import Required
    
    class WeatherAddForm(Form):
        sost = SelectField("Состояние: ", choices=[
        	("ясно", "ясно"), 
        	("пасмурно", "пасмурно"), 
        	("туман", "туман"), 
        	("дождь", "дождь"), 
        	("снег", "снег")]) 
        temp = TextField('Temp', [Required()])

    views.py
    ...
    def create():
        form = WeatherAddForm()
        if form.validate_on_submit(): 
            rec = Weather(
                sost = request.form['sost'], 
                temp = request.form['temp'])
            db.session.add(rec)
            db.session.commit()
            flash(u'Сведения обновлены!')
            return redirect(url_for('.index'))
        ...
        return render_template("weather/create.html",
            form = form)

    В чем проблема?
    Ответ написан
    4 комментария
  • Flask для больших проектов

    @realduke
    Ну и добавлю еще, что мнение, что Flask не подходит для больших проектов — заблуждение. Конечно, фразу «большой проект» можно по-разному трактовать, проект может быть с сильно большой кодобазой, а может быть довольно высоконагруженным, может еще какой-то смысл можно вложить, не знаю. В Flask есть лишь одно ограничение, которое нужно учитывать при разработке — это context local objects. Вот именно оно вносит некоторую сложность при наличии большой кодобазы, т.к. несколько объектов, определенных в github.com/mitsuhiko/flask/blob/master/flask/globals.py, являются глобальными, и для их использования их нужно явно импортировать, в результате можно легко выстрелить себе в ногу. Для высоконагруженных проектаов с умеренным объемом кода проекта я не вижу проблем. Связка nginx + gunicorn + приложение может выдерживать нормальные нагрузки даже на одной машине. Если проект сильно большой, то никто не мешает задеплоить несколько фронтэндов и использовать балансировщик.

    Flask — это лишь небольшая обертка над Werkzeug в виде класса, который выступает в роли callable объекта для WSGI, клей для Jinja, API для расширений, ну и несколько вкусняков в виде блюпринтов и сигналов. Кода не много и он легко читается.
    Ответ написан
    1 комментарий
  • Flask для больших проектов

    @realduke
    Непонятно, что конкретно интересует!

    Flask ничем не отличается от других Python фреймворков. Если использовать связку Flask + SQLAlchemy + WTForms, то это считай тот же Django, только без contrib и админки. Изначально нужно быть готовым к самостоятельному созданию организации структуры проекта, т.е. где конфиги положить, где модели, где тесты и т.д. Есть несколько проектов-заготовок, которые это упрощают.

    Несколько ссылок по теме:

    github.com/mitsuhiko/flask/wiki/Large-app-how-to
    github.com/swaroopch/flask-boilerplate
    github.com/semirook/flask-kit
    github.com/imlucas/flask-tool
    github.com/klen/Flask-Foundation

    У Flask сейчас довольно много расширений, проверенные лежать тут flask.pocoo.org/extensions/. Много других можно найти тут crate.io/?has_releases=on&q=flask. Рекомендуется конечно учитывать что некоторые могут быть криво написаны или морально устарели.

    По устройству проектов еще можно поискать готовые приложения. Они есть тут flask.pocoo.org/community/poweredby/, те, которые с исходниками. Еще на гитхабе много чего, можно поискать по импортам, где используется Flask, в простейшем случае так как-то github.com/search?l=Python&q=from+flask&ref=searchresults&type=Repositories.
    Ответ написан
    2 комментария
  • Nginx proxy_connect_timeout больше 75 секунд?

    maxout
    @maxout
    при чём здесь proxy_connect_timeout, если вы с проксируемым сервером уже соединились?
    proxy_read_timeout вам нужен, его значение при этом не ограничено, хоть несколько лет ставьте.
    Ответ написан
    1 комментарий