Dorong Konteks dalam Skrip dan Shell
Jalankan kode di luar request dengan app_context.
Dorong Konteks dalam Skrip dan Shell adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Flask Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Flask Academy mencakup 4 pelajaran total.
Di Luar Web
Terkadang Anda menjalankan kode Flask tanpa permintaan, seperti script yang mengisi basis data awal. Tidak ada konteks, sehingga proksi biasa gagal.
Kesalahan yang Menandakan
Jalankan kode tersebut dan Flask akan memunculkan RuntimeError: working outside of application context. Pesan itu memberi tahu bahwa tidak ada konteks aplikasi yang aktif.
Dorong Sendiri
Perbaiki dengan mendorong satu konteks menggunakan app.app_context(). Bungkus kode Anda dalam blok with dan current_app akan kembali berfungsi.
with app.app_context():
print(current_app.name)Fungsi Blok with
Memasuki blok with akan mendorong konteks, sedangkan keluar darinya akan mengeluarkan konteks. Anda tidak perlu melakukan pembersihan secara manual.
Kini Ekstensi Berfungsi
Di dalam blok tersebut, ekstensi yang terikat pada aplikasi berperilaku normal. Anda dapat menjalankan db.create_all() atau mengueri model dari skrip biasa.
with app.app_context():
db.create_all()Memerlukan Permintaan Palsu?
Untuk menguji kode yang membaca permintaan, dorong konteks permintaan pengujian dengan test_request_context, bukan konteks aplikasi.
with app.test_request_context("/hello"):
print(request.path)Shell Flask
Perintah flask shell membuka shell Python dengan konteks aplikasi yang sudah didorong, sehingga Anda dapat mencoba-coba aplikasi secara interaktif.
flask shellPerintah CLI Juga
Perintah flask khusus yang Anda daftarkan juga berjalan di dalam konteks aplikasi secara otomatis, sehingga skrip seed dan administrasi langsung berfungsi.
@app.cli.command()
def seed():
db.create_all()Pilih Konteks yang Tepat
Pilih sesuai kebutuhan: gunakan app_context ketika Anda hanya berinteraksi dengan aplikasi atau basis data, dan gunakan konteks permintaan ketika kode Anda membaca data permintaan.
Batasi Cakupannya
Dorong konteks di dalam blok with yang singkat, bukan untuk seluruh skrip. Cakupan yang lebih kecil berarti kode lebih jelas dan pembersihan akhir yang dapat diprediksi.
Mengapa Ini Penting
Mendorong konteks memungkinkan Anda menggunakan kembali logika aplikasi dalam migrasi, tugas cron, dan pengujian, bukan hanya di dalam permintaan web aktif.
Pemeriksaan Singkat
Mari kita pastikan solusi untuk kesalahan konteks.
Ringkasan
Tidak ada permintaan? Dorong satu. Gunakan app_context untuk pekerjaan aplikasi dan basis data, test_request_context untuk data permintaan, dan biarkan flask shell menanganinya untuk Anda. 🎉
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dorong Konteks dalam Skrip dan Shell” gratis?
Ya — teks lengkap “Dorong Konteks dalam Skrip dan Shell” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Flask Academy, upgrade ke CoddyKit PRO. Kursus Flask Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dorong Konteks dalam Skrip dan Shell”?
Jalankan kode di luar request dengan app_context. Kamu berlatih Flask Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Flask Academy?
Tidak diperlukan pengalaman sebelumnya. Flask Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Dorong Konteks dalam Skrip dan Shell” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Flask Academy ini?
Ya. Setiap pelajaran Flask Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Konteks Aplikasi vs Konteks Request
- current_app dan Objek g
- Lokal Konteks dan Keamanan Utas
- Dorong Konteks dalam Skrip dan Shell