Встречается на 1% собеседований по Python

Как реализовать генерацию и рендеринг форм на основе модели, аналогично Form-компоненту в Django

Для генерации форм на основе модели в Python можно использовать библиотеку wtforms вместе с wtforms-alchemy. Пример:

python
from wtforms_alchemy import ModelForm
from models import User  # Импортируем модель SQLAlchemy

class UserForm(ModelForm):
    class Meta:
        model = User  # Указываем модель для формы

Для рендеринга формы в шаблоне (например, Jinja2):

html
<form method="POST">
    {{ form.hidden_tag() }}
    {% for field in form if field.widget.input_type != 'hidden' %}
        <div class="form-group">
            {{ field.label }}
            {{ field(class="form-control") }}
            {% if field.errors %}
                <div class="text-danger">
                    {% for error in field.errors %}
                        {{ error }}
                    {% endfor %}
                </div>
            {% endif %}
        </div>
    {% endfor %}
    <button type="submit">Submit</button>
</form>

Ключевые особенности:

  • Автоматическое создание полей на основе модели
  • Валидация данных по типам полей модели
  • Поддержка отношений между моделями
  • Гибкая настройка через класс Meta

Для работы с Django-like формами можно также рассмотреть django-forms из django или mongoengine для NoSQL.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы