Решено: промяна на колбата за тип на формуляр от текстова към администратор на колба за избор

Последна актуализация: 09/18/2023

Flask, микро уеб рамка, написана на Python, често се използва за разработване на уеб приложения. Той е добре оценен заради своята простота и лекота на използване, като много разработчици го използват за създаване на ефективни, работещи уеб приложения. Една често срещана ситуация в разработката на Flask включва промяна на типа поле на формуляра във Flask-Admin, по-специално преход от текстово поле към поле за избор. Тази фина промяна може значително да подобри потребителския интерфейс и цялостното потребителско изживяване, улеснявайки потребителския избор от предварително зададени опции, вместо ръчно въвеждане на текст.

Промяна на полето на формуляр в Flask-Admin

Flask-Admin, разширение за Flask, предоставя набор от административни интерфейси, които улесняват разработването на администраторско табло с Flask. Докато разработвате вашето уеб приложение, може да срещнете ситуации, в които текстово поле не е идеално, например ако искате да ограничите въвеждането до няколко избрани опции. В този случай трябва да промените полето от текстово в поле за избор.

Първата стъпка в този преход включва създаването на формата. Ще използваме SQLAlchemy, друго разширение на Flask за работа с SQL бази данни, за да настроим нашите модели на база данни. След това ще бъде създаден изброен тип, който съдържа всички опции по подразбиране за полето за избор. И накрая, полето на формуляра ще бъде коригирано в изгледа на модела на Flask-Admin.

Следният код ще илюстрира тази процедура:

from flask_admin.contrib.sqla import ModelView
from flask_admin.form import Select2Widget
from wtforms import SelectField
from enum import Enum

class MyEnum(Enum):
    Option1 = 'Option1'
    Option2 = 'Option2'
    Option3 = 'Option3'

class MyModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    my_field = db.Column(db.Enum(MyEnum), unique=False, nullable=False)

class MyModelView(ModelView):
    form_overrides = dict(my_field=SelectField)
    form_args = dict(
        my_field=dict(
            choices=[(choice, choice.name) for choice in MyEnum]
            widget=Select2Widget()
        )
    )

admin.add_view(MyModelView(MyModel, db.session))

Разбиране на предоставения код

Предоставеното решение започва с необходимите импортирания за създаване на приложението Flask, настройка на Flask-Admin и дефиниране на модел на база данни с SQLAlchemy.

Класът `MyEnum` е изброяване, което представлява наличните опции в полето за избор. Класът `MyModel` представлява модела на SQL базата данни и включва `my_field`, което е полето, което трябва да бъде променено от текст към селекция. `MyModelView` е административният интерфейс за `MyModel` във Flask-Admin. Той има dict обекти `form_overrides` и `form_args` за замяна на полето на формуляра на `my_field` и за добавяне на графичен модул за избор към `my_field`.

За SEO и яснота за разработчиците, нека се потопим в някои конкретни ключови думи:

  • Flask-администратор: Това е разширението на Flask, чрез което се разработват и настройват административни интерфейси за Flask приложения.
  • form_overrides: Този атрибут на класа `ModelView` позволява корекции на високо ниво на полетата на формуляра.
  • form_args: Този атрибут `ModelView` обработва по-специфични конфигурации на полетата на формуляра, включително вида на изпълнимия модул и възможностите за въвеждане.

Библиотеки и функции на Flask

Тази процедура включва използване на възможностите на множество разширения на Flask, включително Flask-Admin и SQLAlchemy. Flask-Admin позволява на уеб разработчиците бързо да създават и персонализират административни интерфейси за уеб приложения на Flask. От друга страна, SQLAlchemy е SQL инструментариум и система за обектно-релационно картографиране (ORM), която предоставя пълен набор от добре познати модели за устойчивост на корпоративно ниво.

За по-задълбочено развитие Flask предлага широк набор от библиотеки за различни задачи. Някои предоставят допълнителна функционалност за справяне с типични задачи за уеб разработка, докато други предлагат по-специализирани функции. Разбирането на тези библиотеки е от решаващо значение за ефективната разработка на Flask, тъй като те могат значително да рационализират процеса на уеб разработка.

И накрая, различните функции, използвани в предоставения код, са неразделна част от разработката на Flask. Те включват `db.Column()`, който дефинира колона в модела на базата данни, и `db.Enum()`, който задава типа поле на изброяване, като по този начин улеснява установяването на полето за избор. Освен това класът `ModelView` и неговите приоритетни атрибути осигуряват лесен начин за конфигуриране и персонализиране на полета на формуляр във Flask-Admin.

Промяната на типовете полета на формуляри във Flask-Admin може да изглежда сложна в началото, но с добро разбиране на библиотеките и функциите на Flask това се превръща в управляема задача. Ползите от подобреното потребителско изживяване и валидността на данните си заслужават усилията.

Подобни публикации:

Оставете коментар