Как использовать WTForms (пакет .py) для представления информации из базы данных и ее изменения?Python

Программы на Python
Ответить
Anonymous
 Как использовать WTForms (пакет .py) для представления информации из базы данных и ее изменения?

Сообщение Anonymous »

Контекст: я пытаюсь создать веб-приложение для управления информационными карточками сотрудников. Таким образом, вы можете нажать на карточку сотрудника и просмотреть такую ​​информацию, как имя, возраст, отдел и т. д., а затем также изменить поле и сохранить измененную информацию.
Цель: я пытаюсь заставить WTForm выполнять двойную функцию, используя заполнитель поля для представления информации из базы данных, а затем разрешая пользователю изменять ее, вводя новую информацию и нажимая «Отправить». (Если это плохая идея или неправильный вариант использования WTForm, дайте мне знать!)
Бэкенд-технологии: Python (3.12.x), flask (3.1.x) и wtforms (3.2.x)

Фронтенд: HTML, CSS, vanilla JS
Вопрос 1: означает ли это, что мне нужно будет создать новую форму Flask класс для каждой карточки сотрудника (определение класса см. ниже), например «EmployeeCardForm1», «EmployeeCardForm2…» и т. д., хотя единственное отличие — это значение атрибута заполнителя для html? Итак, для 30 сотрудников у меня есть 30 классов карточек сотрудников. (Похоже, должен быть лучший способ)
Вопрос 2: Как динамически установить значение заполнителя для параметра render_kw? По крайней мере, я не могу сказать о прямом пути из документации WTForms. Я не уверен, есть ли способ обеспечить это во время создания экземпляра класса формы.

Под динамическим типом я подразумеваю, что код узнает, какое значение установить для render_kw, читая из базы данных во время выполнения.
class EmployeeCardForm(Form):

first_name = StringField(label="First Name",
validators=[
Length(min=1, max=100),
Regexp(regex="^[a-zA-Z]+$",
flags=re.IGNORECASE),
],
render_kw={"placeholder": })

last_name = StringField(label="Last Name",
validators=[
Length(min=1, max=100),
Regexp(regex="^[a-zA-Z]+$",
flags=re.IGNORECASE),
],
render_kw={"placeholder": })

Вот моя функция просмотра:
@app.route("/", methods=['GET', 'POST'])
def index():

form = EmployeeCardForm(request.form)

return render_template("index.html", form=form)


Подробнее здесь: https://stackoverflow.com/questions/798 ... and-modify
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»