Lokal Konteks dan Keamanan Utas
Pelajari cara proksi tetap benar di berbagai request.
Lokal Konteks dan Keamanan Utas adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Pertanyaan Ajaib
Bagaimana satu objek global request tetap benar saat banyak pengunjung mengakses aplikasi Anda secara bersamaan? Jawabannya adalah lokal konteks.
Tampak seperti Global
Objek seperti request dan g tampak seperti global biasa yang Anda impor sekali. Namun, keduanya adalah proksi khusus, bukan variabel bersama biasa.
from flask import requestProksi Menunjuk per Konteks
Sebuah proxy meneruskan setiap akses ke objek nyata untuk konteks saat ini. Setiap permintaan melihat datanya sendiri melalui impor yang sama.
Lokal Konteks
Flask menyebutnya context locals. Keduanya berperilaku seperti lokal utas, tetapi menggunakan konteks aktif sebagai acuan, sehingga permintaan bersamaan tidak pernah saling bertabrakan.
Keamanan Utas
Dua utas yang menangani dua permintaan masing-masing mendapatkan konteks terikatnya sendiri. Jadi, request pada satu utas tidak pernah menampilkan data utas lain.
Melampaui Utas
Flask modern menggunakan contextvars, sehingga isolasi tetap berlaku bahkan untuk greenlet dan tugas asinkron, bukan hanya utas sistem operasi.
Satu Impor, Banyak Nilai
Inilah alasan satu import di bagian atas berkas Anda aman. Proksi tersebut menemukan objek nyata yang berbeda untuk setiap permintaan.
Perhatikan Latar Belakang
Buat sebuah thread mentah dari tampilan dan thread tersebut tidak memiliki konteks. Akses ke request akan gagal kecuali Anda mendorong konteks sendiri.
Teruskan Nilai, Bukan Proksi
Berikan kepada pekerja latar belakang value sebenarnya yang dibutuhkannya, seperti id pengguna, bukan proksi permintaan yang saat itu sudah tidak ada.
uid = request.args.get("id")
start_job(uid)Dapatkan Objek Nyata
Memerlukan objek dasar di balik proksi? Gunakan _get_current_object, tetapi gunakan hanya sesekali dan saat benar-benar diperlukan.
real = request._get_current_object()Mengapa Terasa Mudah
Lokal konteks membuat Flask terasa sederhana: Anda mengimpor request sekali dan dapat mengandalkannya, sementara kerangka kerja diam-diam menjaga setiap permintaan tetap terisolasi.
Pemeriksaan Singkat
Mari kita pastikan cara proksi tetap aman.
Rangkuman
Global Flask sebenarnya adalah context-local proxies. Keduanya menemukan objek berdasarkan permintaan, menjaga utas dan tugas asinkron tetap terisolasi, sehingga satu impor tetap aman di mana saja. 🎉
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 “Lokal Konteks dan Keamanan Utas” gratis?
Ya — teks lengkap “Lokal Konteks dan Keamanan Utas” 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 “Lokal Konteks dan Keamanan Utas”?
Pelajari cara proksi tetap benar di berbagai request. 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 3 dari 4.
Berapa lama pelajaran “Lokal Konteks dan Keamanan Utas” 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