для l oop в Routes для получения или отправки данных из БД (Flask -wtforms) - PullRequest
0 голосов
/ 23 января 2020

Я строю лист персонажа Dungeon & Dragon, используя Flask и его модули (Flask-wtform, flask-sqlalchemy). Если вы раньше играли в D & D, вы знаете, что таблица персонажей довольно сложна.

Я построил разные формы для разных частей листа персонажа. Поскольку есть много полей, будет трудно поддерживать в долгосрочной перспективе. Ввод каждого поля формы вручную, все данные из базы данных также будут подвержены ошибкам.

Просто для примера, в моем файле routes.py, это то, что я делаю для извлечения данных из БД для каждого поля, если игрок уже заполнил свой лист персонажа (упрощенно):

    if user_baseinfo is not None:
            baseinfo_form.character_name.data = user_baseinfo.c_name
            baseinfo_form.player_name.data = user_baseinfo.p_name
            baseinfo_form.character_class.data = user_baseinfo.c_class
            baseinfo_form.character_level.data = user_baseinfo.c_level
            baseinfo_form.ECL.data = user_baseinfo.ECL
            baseinfo_form.character_race.data = user_baseinfo.c_race
            baseinfo_form.character_size.data = user_baseinfo.c_size
            baseinfo_form.character_gender.data = user_baseinfo.c_gender
            baseinfo_form.character_alignment.data = user_baseinfo.c_alignment
            baseinfo_form.character_religion.data = user_baseinfo.c_religion
            baseinfo_form.character_height.data = user_baseinfo.c_height
            baseinfo_form.character_weight.data = user_baseinfo.c_weight
            baseinfo_form.character_looks.data = user_baseinfo.c_looks

Я хотел бы сделать 'для l oop', чтобы назначить данные вместо того, чтобы делать это вручную, как приведенный выше пример. Это будет использовать много ручной работы с моей стороны. Я ищу что-то вроде этого:

for form_field, db_data in baseinfo_form, db_info:
       form_field.data = db_info.db_data

Я чувствую, что я близок к решению, но я не понял его.

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...