Kebenaran dan Pendikitan
Kawal pihak yang boleh memanggil API anda dan kekerapannya.
Kebenaran dan Pendikitan ialah pelajaran Django Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Django Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Django Academy merangkumi sejumlah 4 pelajaran.
Siapa Boleh Memanggil API Anda?
API terbuka membenarkan sesiapa sahaja membaca atau mengubah data anda. Kebenaran menentukan siapa yang dibenarkan melakukan perkara tertentu pada setiap titik akhir.
Atribut permission_classes
Anda melampirkan peraturan akses dengan permission_classes pada paparan atau ViewSet. DRF menyemaknya sebelum sebarang tindakan dijalankan.
from rest_framework.permissions import IsAuthenticated
class BookViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]Kelas Kebenaran Terbina Dalam
DRF menyediakan peraturan sedia digunakan: AllowAny membuka sesuatu paparan, IsAuthenticated memerlukan pengguna yang telah log masuk dan IsAdminUser mengehadkannya kepada kakitangan.
Baca untuk Semua, Tulis untuk Ahli
IsAuthenticatedOrReadOnly ialah pilihan pertengahan yang popular: sesiapa sahaja boleh melakukan GET, tetapi hanya pengguna yang telah log masuk boleh melakukan POST, PUT atau DELETE.
Menetapkan Lalai Secara Global
Tetapkan peraturan seluruh projek dalam settings.py supaya setiap paparan bermula dalam keadaan selamat melainkan ia memilih untuk tidak menggunakannya.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
}Menulis Kebenaran Tersuai
Perlukan peraturan sendiri? Cipta subkelas BasePermission dan kembalikan True atau False daripada has_permission untuk permintaan tersebut.
from rest_framework.permissions import BasePermission
class IsOwner(BasePermission):
def has_object_permission(self, request, view, obj):
return obj.owner == request.userKebenaran pada Tahap Objek
Gunakan has_object_permission untuk menyemak satu rekod, seperti membenarkan pengguna mengedit hanya kiriman yang mereka miliki. 🔒
Kini, Pendikitan
Kebenaran menjawab soalan siapa. Pendikitan menjawab soalan berapa kerap, dengan mengehadkan bilangan permintaan yang boleh dihantar oleh klien dalam tempoh tertentu.
Pendikitan Anonim berbanding Pengguna
DRF menyediakan AnonRateThrottle untuk pelawat yang tidak disahkan dan UserRateThrottle untuk akaun yang telah log masuk, supaya anda boleh menetapkan had lebih ketat untuk orang tidak dikenali.
Mengkonfigurasi Had Kadar
Tetapkan had dalam settings dengan DEFAULT_THROTTLE_RATES, menggunakan bilangan bersama tempoh seperti saat, minit, jam atau hari.
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'anon': '20/hour',
'user': '1000/day',
},
}Perkara yang Dilindungi oleh Pendikitan
Pendikitan melindungi anda daripada penyalahgunaan dan skrip yang berjalan tanpa kawalan. Apabila klien melebihi had, DRF mengembalikan respons 429 Too Many Requests. 🛡️
Semakan Pantas
Mari kita sahkan perbezaan antara dua pengawal ini.
Ringkasan: Akses dan Had Kadar
Kini anda boleh mengehadkan titik akhir dengan kelas kebenaran dan melindunginya dengan kadar pendikitan. Bersama-sama, kedua-duanya memastikan API anda selamat dan stabil. 🎉
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Kebenaran dan Pendikitan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Django Academy, termasuk “Kebenaran dan Pendikitan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Django Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Kebenaran dan Pendikitan”?
Kawal pihak yang boleh memanggil API anda dan kekerapannya. Anda berlatih Django Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Django Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Django Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Kebenaran dan Pendikitan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Django Academy ini?
Ya. Setiap pelajaran Django Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- ModelViewSet dan Penghala
- Kebenaran dan Pendikitan
- Pengesahan Token dan JWT
- Penapisan, Carian dan Penomboran