Flask Academy · Oppitunti

Työnnä konteksti skripteissä ja komentotulkeissa

Suorita koodia pyynnön ulkopuolella app_contextin avulla.

Oppitunti 4/413 vaihetta

Työnnä konteksti skripteissä ja komentotulkeissa on ilmainen Flask Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.

Verkon ulkopuolella

Joskus Flask-koodia suoritetaan ilman pyyntöä, esimerkiksi script-skriptissä, joka alustaa tietokannan. Kontekstia ei ole, joten tavalliset välityspalvelimet eivät toimi.

Paljastava virhe

Kun suoritatte tällaisen koodin, Flask nostaa virheen RuntimeError: working outside of application context. Se kertoo, ettei sovelluskonteksti ole aktiivinen.

Lisätkää se itse

Korjatkaa tilanne lisäämällä konteksti app.app_context()-funktion avulla. Käärikää koodi with-lohkoon, jolloin current_app alkaa jälleen toimia.

with app.app_context():
    print(current_app.name)

Mitä with-lohko tekee

with-lohkoon siirtyminen lisää kontekstin ja lohkosta poistuminen poistaa sen. Teidän ei tarvitse koskaan siivota sitä käsin.

Nyt laajennukset toimivat

Lohkon sisällä sovellukseen sidotut laajennukset toimivat normaalisti. Voitte suorittaa db.create_all()-kutsun tai tehdä mallikyselyitä tavallisesta skriptistä.

with app.app_context():
    db.create_all()

Tarvitsetteko valepyyntöä?

Testataksesi request-oliota lukevaa koodia työnnä testipyyntökonteksti test_request_contextilla sovelluskontekstin sijaan.

with app.test_request_context("/hello"):
    print(request.path)

Flask Shell

flask shell -komento avaa Python-kuoren, jossa sovelluskonteksti on jo työnnetty pinoon, joten voit tutkia sovellustasi vuorovaikutteisesti.

flask shell

Myös CLI-komennot

Myös rekisteröimäsi mukautetut flask-komennot suoritetaan automaattisesti sovelluskontekstissa, joten alustus- ja ylläpitäjäskriptit toimivat sellaisenaan.

@app.cli.command()
def seed():
    db.create_all()

Valitse oikea konteksti

Valitse tarpeen mukaan: käytä app_context-kontekstia, kun käsittelet vain sovellusta tai tietokantaa, ja pyyntökontekstia, kun koodisi lukee pyyntötietoja.

Rajaa konteksti

Työnnä kontekstit tiiviiseen with-lohkoon, älä koko skriptiin. Pienempi laajuus tekee koodista selkeämpää ja purkamisesta ennakoitavaa.

Miksi tällä on merkitystä

Kontekstien työntäminen pinoon mahdollistaa sovelluslogiikan uudelleenkäytön migrations-siirroissa, cron-töissä ja testeissä, ei vain aktiivisten verkkopyyntöjen aikana.

Pikatarkistus

Varmistetaan ratkaisu kontekstivirheeseen.

Kertaus

Ei pyyntöä? Työnnä sellainen pinoon. Käytä app_context-kontekstia sovellus- ja tietokantatyöhön, test_request_contextia pyyntötietoihin ja anna flask shellin hoitaa asia puolestasi. 🎉

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 ”Työnnä konteksti skripteissä ja komentotulkeissa” ilmainen?

Kyllä – oppitunnin ”Työnnä konteksti skripteissä ja komentotulkeissa” 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 ”Työnnä konteksti skripteissä ja komentotulkeissa”?

Suorita koodia pyynnön ulkopuolella app_contextin avulla. 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 4/4.

Kuinka kauan ”Työnnä konteksti skripteissä ja komentotulkeissa”-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. Sovelluskonteksti ja request-konteksti
  2. current_app ja g-olio
  3. Kontekstikohtaiset lokaalit ja säieturvallisuus
  4. Työnnä konteksti skripteissä ja komentotulkeissa
← Takaisin: Flask Academy