Discovery memungkinkan Anda membuat API dari database yang ada dengan upaya minimal. Proyek ini didasarkan pada Bookrest Shabda Raaj. Anda juga dapat memanfaatkan kapabilties dari kerangka kerja Django Rest untuk menerapkan penyaringan, pagination dan pembuatan dokumentasi. Contoh dapat ditemukan di direktori examples .
Data tidak selalu dapat diakses dalam aplikasi lama. Anda mungkin berada dalam situasi di mana Anda memerlukan akses ke data untuk melaporkan atau membuat prototipe alat baru. Menambahkan fungsionalitas baru ke perangkat lunak warisan dapat menjadi penghalang biaya dan solusi ini bertujuan untuk menyelesaikan masalah ini.
Untuk pembuatan skema yang sukses, Anda perlu memiliki kunci utama dalam tabel. Kalau tidak, itu akan diam -diam diabaikan.
pip install djangorestframework-discovery Di settings.py Anda.
INSTALLED_APPS = [
# ...
"rest_framework" ,
"rest_framework_discovery" ,
] Tambahkan variabel ke settings.py Anda.py bernama DISCOVERY_ALIAS_NAME . Anda dapat menggunakan nilai apa pun, tetapi discovery direkomendasikan. Anda akan menggunakannya untuk menentukan database yang ingin Anda gunakan untuk pembuatan Viewset.
DISCOVERY_ALIAS_NAME = 'discovery'
DATABASES = {
'default' : {
'ENGINE' : 'django.db.backends.sqlite3' ,
'NAME' : os . path . join ( BASE_DIR , 'db.sqlite3' ),
},
'discovery' : {
'NAME' : 'YOUR_DB_NAME' ,
'ENGINE' : 'django.db.backends.postgresql' ,
'USER' : 'YOUR_DB_USER' ,
'PASSWORD' : 'YOUR_DB_PASSWORD' ,
'HOST' : 'YOUR_DB_HOST' ,
'PORT' : 'YOUR_DB_PORT' ,
},
} Tambahkan pola yang dihasilkan ke seluruh aplikasi Anda dengan memodifikasi urls.py
urlpatterns = [
# ...
url ( r'^api/discovery/' , include ( 'rest_framework_discovery.urls' )),
] Anda juga perlu menyertakan DEFAULT_SCHEMA_CLASS secara eksplisit di settings.py untuk membuatnya berfungsi. Lihat detail tambahan ..
REST_FRAMEWORK = {
...
'DEFAULT_SCHEMA_CLASS' : 'rest_framework.schemas.coreapi.AutoSchema'
} Anda dapat menjalankan melalui suite pengujian dengan menjalankan runtests.py atau tox .
Anda dapat mengonfigurasi yang berikut di settings.py :
DISCOVERY_ALIAS_NAME : (diperlukan) Nama alias basis data yang akan digunakan dengan penemuan.DISCOVERY_READ_ONLY : (opsional) True atau False , apakah viewset harus hanya baca.DISCOVERY_INCLUDE : (opsional) Daftar tabel yang hanya ingin Anda sertakan.DISCOVERY_EXCLUDE : (opsional) Daftar tabel yang ingin Anda abaikan.