Flask Academy · Oppitunti

Globaalin app-olion ongelmat

Miksi yksittäinen moduulitason app rajoittaa sovellusta.

Oppitunti 1/413 vaihetta

Globaalin app-olion ongelmat on ilmainen Flask Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Flask Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Houkutteleva oikotie

Useimmissa oppaissa app luodaan moduulin alussa ja sitä käytetään kaikkialla. Se vaikuttaa yksinkertaiselta, mutta tuo yksi globaali olio rajoittaa huomaamatta projektin kasvumahdollisuuksia. 🌱

Yksi sovellus ikuisesti

Moduulitasoinen app luodaan heti, kun tiedosto tuodaan. Saat täsmälleen yhden instanssin ja yhden kiinteän määrityksen koko prosessin ajaksi.

from flask import Flask
app = Flask(__name__)  # created on import

Vaikea testata

Testauksessa tarvitaan mieluiten uusi sovellus joka ajoa varten ja testiasetuksilla. Globaali app on jo määritetty, joten testit perivät kehitysympäristösi asetukset ja vuodattavat tilaa toistensa välillä.

Ei ympäristökohtaista määritystä

Kehitys-, testi- ja tuotantoympäristö tarvitsevat kukin erilaiset asetukset. Yhden globaalin app-olion kanssa määrityksen vaihtaminen tarkoittaa globaalien muuttujien muokkaamista tai helposti rikkoutuvia tuontiaikaisia kiertoteitä.

Kehäriippuvuuksien ansat

Muut moduulit tuovat app-olion rekisteröidäkseen reittejä, ja app tuo ne puolestaan takaisin. Tämä kaksisuuntainen riippuvuus luo kehäriippuvuuksia, jotka kaatavat sovelluksen käynnistyksen yhteydessä. 😣

Laajennukset sidotaan liian aikaisin

Kun tuontiaikana suoritetaan esimerkiksi db = SQLAlchemy(app), laajennus lukitaan yhteen sovellukseen ennen kuin edes tiedät, mitä määritystä käytetään.

db = SQLAlchemy(app)  # bound too soon

Tuontijärjestyksestä tulee hauras

Koska kaikki riippuu yhdestä globaalista oliosta, tuontijärjestyksellä alkaa olla merkitystä. Yhden rivin siirtäminen voi estää reitin rekisteröitymisen kaikessa hiljaisuudessa.

Useat sovellukset ovat mahdottomia

Joskus tarvitset kaksi sovellusinstanssia, esimerkiksi yhden hallintapaneelia varten. Yksi globaali app tekee useamman sovelluksen ajamisesta samassa prosessissa vähintäänkin hankalaa.

Määritys asetetaan ennen kuin tiedät tarpeen

Tuontiaikana et usein vielä tiedä, onko kyseessä testi- vai tuotantoajo. Globaali app pakottaa tekemään määrityspäätökset ennen kuin vastaus on tiedossa.

Ongelman ratkaiseva malli

Ratkaisu on sovellustehtaan käyttöönotto: funktio, joka rakentaa ja palauttaa tarvittaessa uuden, täysin määritetyn app-olion yhden jäädytetyn globaalin olion sijaan.

Pieni esikatselu

Globaalin olion sijaan kutsut funktiota. Jokainen kutsu palauttaa puhtaan app-olion, jonka voit määrittää tilanteen tarpeiden mukaan.

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

Pikatarkistus

Mikä on yhden moduulitasoisen app-olion keskeinen ongelma?

Kertaus

Globaali app on yksi jäädytetty instanssi: sitä on vaikea testata ja määrittää ympäristökohtaisesti, ja se altistaa kehäriippuvuuksille. Tehdasmalli on ratkaisu, jonka rakennat seuraavaksi. 🚀

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Globaalin app-olion ongelmat” ilmainen?

Kyllä – oppitunnin ”Globaalin app-olion ongelmat” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Flask Academy-kurssin, päivitä CoddyKit PROhon. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Globaalin app-olion ongelmat”?

Miksi yksittäinen moduulitason app rajoittaa sovellusta. Harjoittelet Flask Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Flask Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Flask Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Globaalin app-olion ongelmat”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Flask Academy-oppitunnilla?

Kyllä. Jokainen Flask Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Globaalin app-olion ongelmat
  2. Kirjoita create_app-funktio
  3. Alusta extensionit init_appilla
  4. Rekisteröi Blueprintit factoryssa
← Takaisin: Flask Academy