Flask Academy · Lektion

Skriv en create_app-funktion

Konstruér og konfigurér appen i en factory.

Lektion 2 af 413 trin

Skriv en create_app-funktion er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.

Mød Factory

En application factory er blot en funktion med navnet create_app, der bygger en ny Flask-app, konfigurerer den og returnerer den. Ingen globale værdier er nødvendige. 🏭

Den mindste factory

I sin kerne opretter create_app appen i funktionens krop og returnerer den. Alt det, du tidligere gjorde på modulniveau, flyttes hertil.

def create_app():
    app = Flask(__name__)
    return app

Lokal, ikke global

Bemærk, at app nu er en lokal variabel. Hvert kald opretter en helt ny instans, så intet lækker mellem tests eller miljøer.

Konfigurér internt

Indstil konfigurationen på den lokale app, før du returnerer den. Et almindeligt valg er app.config.from_object til at indlæse en indstillingsklasse.

def create_app():
    app = Flask(__name__)
    app.config.from_object("config.Dev")
    return app

Acceptér et konfigurationsargument

Gør factoryen fleksibel ved at lade den acceptere en config-parameter. Overfør indstillinger for Dev, Test eller Prod, afhængigt af hvordan appen startes.

def create_app(config_class):
    app = Flask(__name__)
    app.config.from_object(config_class)
    return app

Registrér routes internt

Definér eller importér dine routes i create_app, så de knyttes til denne specifikke instans i stedet for en fælles global værdi.

def create_app():
    app = Flask(__name__)
    @app.route("/")
    def home():
        return "Hi"
    return app

Hvor skal den placeres?

Placér create_app i din pakkeinitialisering, f.eks. app/__init__.py. Derefter kalder importerende moduler factoryen i stedet for at hente en global værdi.

Sådan finder Flask den

Udviklingsserveren leder automatisk efter en kaldbar funktion med navnet create_app. Det er som regel nok at sætte FLASK_APP til din pakke for at starte.

FLASK_APP=app flask run

Et WSGI-indgangspunkt

På produktionsservere eksponerer du én instans ved at kalde fabrikken én gang i et lille wsgi.py-modul.

from app import create_app
app = create_app()

Test bliver nemt

Tests kalder blot create_app med testkonfiguration og får en isoleret app hver gang. Ingen delt tilstand og ingen overraskelser. ✅

app = create_app("config.Test")

Hold fokus

Betragt create_app som et samlebånd: opret, konfigurér, forbind, returnér. Modstå fristelsen til at fylde forretningslogik direkte ind i den.

Hurtigt tjek

Hvad returnerer en create_app-fabrikfunktion?

Opsummering

Du skrev create_app: en funktion, der opbygger, konfigurerer og returnerer en ny Flask-app. Den erstatter den globale app og gør konfiguration og test enkelt. 🎯

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Skriv en create_app-funktion” gratis?

Ja — hele teksten til “Skriv en create_app-funktion” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Skriv en create_app-funktion”?

Konstruér og konfigurér appen i en factory. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Flask Academy?

Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Skriv en create_app-funktion”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Flask Academy-lektion?

Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Problemer med et globalt app-objekt
  2. Skriv en create_app-funktion
  3. Initialisér extensions med init_app
  4. Registrér blueprints i factoryen
← Tilbage til Flask Academy