Rezolvat: schimbați tipul de formular din balonul de la text la cel de selecție admin

Flask, un cadru web micro scris în Python, este adesea folosit pentru a dezvolta aplicații web. Este bine considerat pentru simplitatea și ușurința sa de utilizare, mulți dezvoltatori folosindu-l pentru a crea aplicații web eficiente și funcționale. O situație comună în dezvoltarea Flask implică schimbarea tipului câmpului de formular în Flask-Admin, în special tranziția de la un câmp de text la un câmp de selecție. Această modificare subtilă poate îmbunătăți foarte mult interfața cu utilizatorul și experiența generală a utilizatorului, facilitând selecția utilizatorului dintre opțiunile predefinite, mai degrabă decât introducerea manuală a textului.

Modificarea câmpului formularului în Flask-Admin

Flask-Admin, o extensie pentru Flask, oferă un set de interfețe administrative care facilitează dezvoltarea tabloului de bord administrativ cu Flask. Pe măsură ce vă dezvoltați aplicația web, puteți întâlni situații în care un câmp de text nu este ideal, cum ar fi dacă doriți să limitați intrările la câteva opțiuni selectate. În acest caz, ar trebui să schimbați câmpul dintr-un câmp de text într-un câmp de selecție.

Primul pas în această tranziție implică crearea formularului. Vom folosi SQLAlchemy, o altă extensie Flask pentru gestionarea bazelor de date SQL, pentru a configura modelele noastre de baze de date. În continuare, va fi creat un tip enumerat care conține toate opțiunile implicite pentru câmpul de selecție. În cele din urmă, câmpul formularului va fi ajustat în vizualizarea Model din Flask-Admin.

Următorul cod va ilustra această procedură:

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))

Înțelegerea Codului furnizat

Soluția oferită începe cu importurile necesare pentru crearea aplicației Flask, configurarea Flask-Admin și definirea unui model de bază de date cu SQLAlchemy.

Clasa `MyEnum` este o enumerare care reprezintă opțiunile disponibile în câmpul de selecție. Clasa `MyModel` reprezintă modelul bazei de date SQL și include `my_field`, care este câmpul care trebuie schimbat de la text la selecție. `MyModelView` este interfața administrativă pentru `MyModel` din Flask-Admin. Are obiecte dict `form_overrides` și `form_args` pentru a suprascrie câmpul de formular al `my_field` și pentru a adăuga un widget de selectare la `my_field`.

Pentru claritatea SEO și pentru dezvoltatori, să ne aruncăm în câteva cuvinte cheie specifice:

  • Flask-Admin: Aceasta este extensia Flask prin care sunt dezvoltate și configurate interfețele administrative pentru aplicațiile Flask.
  • form_overrides: Acest atribut al clasei `ModelView` permite ajustări la nivel înalt ale câmpurilor de formular.
  • form_args: Acest atribut „ModelView” gestionează configurații mai specifice ale câmpurilor de formular, inclusiv tipul widgetului și opțiunile de intrare.

Biblioteci și funcții Flask

Această procedură implică valorificarea capacităților mai multor extensii Flask, inclusiv Flask-Admin și SQLAlchemy. Flask-Admin permite dezvoltatorilor web să creeze și să personalizeze rapid interfețe administrative pentru aplicațiile web Flask. Pe de altă parte, SQLAlchemy este un set de instrumente SQL și un sistem Object-Relational Mapping (ORM) care oferă o suită completă de modele de persistență binecunoscute la nivel de întreprindere.

Pentru o dezvoltare mai aprofundată, Flask oferă o gamă largă de biblioteci pentru diferite sarcini. Unele oferă funcționalități suplimentare pentru gestionarea sarcinilor tipice de dezvoltare web, în ​​timp ce altele oferă funcții mai specializate. Înțelegerea acestor biblioteci este crucială pentru dezvoltarea eficientă a Flask, deoarece ele pot eficientiza în mod semnificativ procesul de dezvoltare web.

În cele din urmă, diferitele funcții utilizate în codul furnizat sunt parte integrantă a dezvoltării Flask. Acestea includ `db.Column()`, care definește o coloană în modelul bazei de date, și `db.Enum()`, care setează tipul câmpului la enumerare, facilitând astfel stabilirea câmpului de selecție. În plus, clasa „ModelView” și atributele sale de suprascrie oferă o modalitate ușoară de a configura și personaliza câmpurile de formular în Flask-Admin.

Modificarea tipurilor de câmpuri de formular în Flask-Admin poate părea complexă la început, dar cu o bună înțelegere a bibliotecilor și funcțiilor Flask, devine o sarcină gestionabilă. Beneficiile experienței îmbunătățite ale utilizatorului și validității datelor merită efortul.

Postări asemănatoare:

Lăsați un comentariu