Bagaimana Saya Membetulkan 'RuntimeError: Bekerja di Luar Konteks Aplikasi' dalam Ujian Flask?

Linda Hamilton
Lepaskan: 2024-11-13 15:34:02
asal
748 orang telah melayarinya

How Do I Fix

RuntimeError: Operasi Luar Konteks Aplikasi

Dalam Flask, setiap permintaan menjana konteks aplikasi yang berfungsi sebagai konteks untuk pelbagai operasi. Semasa menguji aplikasi Flask, adalah perkara biasa untuk menghadapi ralat "RuntimeError: bekerja di luar konteks aplikasi". Ini berlaku apabila operasi dicuba di luar konteks yang ditentukan ini.

Untuk menangani isu ini, anda mesti mencipta konteks permintaan secara eksplisit dalam ujian unit anda. Dengan memasukkan app.app_context() ke dalam ujian anda, anda mewujudkan konteks yang diperlukan untuk melaksanakan operasi seperti sambungan pangkalan data atau pemaparan templat:

def test_connection1(self):
with app.app_context():
object = TestMySQL()
object.before_request()
Salin selepas log masuk

Dengan membungkus kod ujian dalam konteks apl, anda memastikan operasi adalah dilakukan dalam konteks yang betul dan elakkan ralat Runtime. Selain itu, anda boleh menggunakan app.test_client() untuk mencipta klien ujian yang membenamkan konteks aplikasi dan meniru kesan permintaan biasa tanpa memerlukan permintaan HTTP sebenar.

client = app.test_client()
response = client.get('/')
assert response.status_code == 200
Salin selepas log masuk

Ringkasnya, untuk mengelakkan ralat "RuntimeError: bekerja di luar konteks aplikasi" dan berjaya menguji aplikasi Flask, gunakan app.app_context() atau app.test_client() untuk mewujudkan konteks yang diperlukan untuk operasi khusus permintaan.

Atas ialah kandungan terperinci Bagaimana Saya Membetulkan 'RuntimeError: Bekerja di Luar Konteks Aplikasi' dalam Ujian Flask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan