Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 5, 2017 00:43:54

ab
Зарегистрирован: 2017-01-31
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

Всем спасибо за уделённое время.

Офлайн

#2 Фев. 5, 2017 01:16:12

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

plusplus
Во flask-е request является глобальным объектом. В любом вью можно импортнуть request и получить данные. Добро пожаловать во Flask

Неа. Не глобальный

Офлайн

#3 Фев. 5, 2017 01:17:05

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

plusplus
Ну request.form в форму надо обязательно передавать, как вам уже выше написали. Если и с ним не работает, тогда не знаю, видимо форму заполняли с ошибками по запарке.

Тоже не обязательно

Офлайн

#4 Фев. 8, 2017 01:07:39

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

ab
зачем переписывать метод валидации формы без вызова super()?
вот валидатор

 def validate_email(self, field):
    user = User.query.filter_by(email=field.data.lower()).first()
    if not user:
        raise ValidationError("error text")

Офлайн

#5 Фев. 25, 2017 19:48:36

lobster
От:
Зарегистрирован: 2011-06-09
Сообщения: 82
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

Помоему в form.errors ошибки выводятся после вызова form.validate().
А то-что инициализировать форму объектом реквеста это сто процентов, иначе придется вручную это делать:

form.username.data = request.form['username']
form.password.data = request.form['password']

Может в шаблоне с аттрибутами в инпутах что-то нетак.



Офлайн

#6 Фев. 25, 2017 21:03:44

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

lobster
умно. А если 150 инпутов, все прописывать будете?
Во Flask-WTF это делается с

 form = SubclassOfFlaskForm()
form.validate_on_submit()
в обычной Form из WTForms
 form = SomeForm(formdata=request.form)
request.method == "POST" and form.validate()

Отредактировано sander (Фев. 25, 2017 21:05:01)

Офлайн

#7 Фев. 25, 2017 21:58:39

lobster
От:
Зарегистрирован: 2011-06-09
Сообщения: 82
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

sander
lobsterумно. А если 150 инпутов, все прописывать будете? Во Flask-WTF это делается с
Зачем все прописывать, если полагатся на себя то можно врапер слабать
sander
form = SomeForm(formdata=request.form)
request.method == “POST” and form.validate()
А отсюда http://flask.pocoo.org/docs/0.12/patterns/wtforms/ любая обезьяна может копипастить



Офлайн

#8 Фев. 25, 2017 22:46:05

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

lobster
Зачем все прописывать, если полагатся на себя то можно врапер слабать
Вот тут Вы не правы. Какой враппер??? Уже есть готовые решения. Не надо велосипедить. Вот если бы Вам не хватало функциональности, тогда да, пишем обертки. Ну а когда тривиальная задача и уже есть результат, тогда желание написать обертку нужно подавлять в себе в зародыше

Офлайн

#9 Фев. 25, 2017 23:58:00

lobster
От:
Зарегистрирован: 2011-06-09
Сообщения: 82
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

А вы не правы - утверждая что велосипеды это плохо. Сторонники “готовых решений” всегда похожи на тех старух из сказок со своими раздолбанными корытами, которые всегда сидят и ждут у моря погоды, а солнца так и не видно :)



Офлайн

#10 Фев. 26, 2017 09:49:57

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Flask + WTForms: проблема с Validation

lobster
Я не против велосипедов. Но когда уровень позволяет. У Вас пока нет. Альтернатива той же jinja2 есть. backslant от Миши Кривушина. Это велосипед и очень даже ничего. А Вы детский сад пытаетесь тут выдать за разработку чего-то нового и нужного. Кроме того Вы решаете стандартную задачу стандартным методом. Вот wtforms-alchemy нужный велосипед. Очень. А враппер, который будет пихать в форму все из поста вручную (что и так делается только более элегантно) похож даже не на велосипед, а на скейт неумелого подростка. Я не хочу Вас обидеть. Нужно искать, пробовать и предлагать альтернативы. Но уже после того, как знаете как оно сейчас и понимаете где можно улучшить…

Отредактировано 4kpt_V (Фев. 26, 2017 09:51:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version