Pemuat Pengguna dan UserMixin
Konfigurasikan LoginManager dan model pengguna.
Pemuat Pengguna dan UserMixin adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Kenalan dengan Flask-Login
Ekstensi Flask-Login mengelola siapa yang sedang masuk untuk Anda. Ekstensi ini melacak pengguna saat ini di antara berbagai permintaan sehingga Anda tidak perlu mengatur sesi secara manual.
pip install flask-loginBuat LoginManager
Semuanya dimulai dengan LoginManager. Anda membuat satu instans dan menghubungkannya ke aplikasi agar Flask-Login dapat terhubung ke berbagai permintaan.
from flask_login import LoginManager
login_manager = LoginManager()
login_manager.init_app(app)Dua Hal yang Dibutuhkan
Agar dapat bekerja, pengelola memerlukan model pengguna yang mengikuti aturannya serta fungsi untuk memuat pengguna berdasarkan id. Hari ini Anda akan menyiapkan keduanya.
Pintasan UserMixin
Model Anda harus menyediakan beberapa properti seperti is_authenticated. Kelas UserMixin menyediakan semuanya, jadi Anda cukup mewarisinya.
from flask_login import UserMixin
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)Yang Disediakan UserMixin
UserMixin menambahkan is_authenticated, is_active, is_anonymous, dan get_id secara otomatis. Yang terakhir mengembalikan id pengguna Anda sebagai string.
Fungsi Balik user_loader
Flask-Login hanya menyimpan id pengguna dalam sesi. Pada setiap permintaan, Flask-Login memanggil user_loader Anda untuk mengubah id tersebut kembali menjadi pengguna yang sebenarnya.
Daftarkan Pemuat
Beri dekorator pada fungsi dengan login_manager.user_loader. Fungsi tersebut menerima id dari sesi dan harus mengembalikan objek pengguna atau None.
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))Id Datang sebagai String
Id yang diteruskan ke pemuat Anda selalu berupa string karena berasal dari kuki. Ubah menjadi int sebelum melakukan kueri pada kunci utama bertipe bilangan bulat.
return User.query.get(int(user_id))Kembalikan None untuk Id yang Tidak Dikenal
Jika id tidak cocok dengan baris mana pun, pemuat Anda harus mengembalikan None. Flask-Login kemudian menganggap permintaan tersebut berasal dari pengunjung anonim.
Ganti get_id Jika Diperlukan
Jika kunci utama Anda tidak bernama id, ganti get_id agar mengembalikan nilai yang benar. Sebagian besar aplikasi dengan kolom id biasa tidak perlu mengubahnya.
def get_id(self):
return str(self.uuid)Semua Bagian Kini Terhubung
Dengan pengelola, model UserMixin, dan user_loader yang sudah disiapkan, Flask-Login dapat mengenali pengguna saat ini pada setiap permintaan yang masuk.
Pemeriksaan Singkat
Pikirkan apa yang sebenarnya disimpan oleh sesi di antara berbagai permintaan.
Ringkasan
Anda telah menghubungkan LoginManager, mencampurkan UserMixin ke dalam model, dan menulis user_loader. Kini Flask-Login dapat membangun kembali pengguna saat ini dari sebuah sesi. 👤
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 “Pemuat Pengguna dan UserMixin” gratis?
Ya — teks lengkap “Pemuat Pengguna dan UserMixin” 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 “Pemuat Pengguna dan UserMixin”?
Konfigurasikan LoginManager dan model pengguna. 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 2 dari 4.
Berapa lama pelajaran “Pemuat Pengguna dan UserMixin” 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
- Hash Kata Sandi, Jangan Pernah Simpan Teks Biasa
- Pemuat Pengguna dan UserMixin
- login_user, logout_user, dan Sesi
- Lindungi Tampilan dengan login_required