Fahami Hubungan Pangkalan Data dalam Django

Fahami Hubungan Pangkalan Data dalam Django
Pembaca seperti anda membantu menyokong MUO. Apabila anda membuat pembelian menggunakan pautan di tapak kami, kami mungkin mendapat komisen ahli gabungan.

Hubungan pangkalan data menerangkan hubungan antara jadual pangkalan data yang berbeza. Perhubungan menentukan cara menyimpan dan mendapatkan semula data. Django berfungsi dengan baik dengan sistem pangkalan data hubungan (RDBMS). Oleh itu, ia menyokong perhubungan jadual pangkalan data.





Jenis perhubungan bergantung pada keperluan aplikasi anda dan data yang dimodelkan. Hubungan baik antara model Django dan pangkalan data meningkatkan penyelenggaraan data. Itu termasuk meningkatkan prestasi pertanyaan dan mengurangkan pertindihan data.





MAKEUSEOF VIDEO OF THE DAY

Anda boleh mempelajari cara hubungan pangkalan data Django mempengaruhi prestasi aplikasi dengan meneroka tiga jenis perhubungan utama.





Hubungan Pangkalan Data

Sistem pangkalan data hubungan menyokong tiga jenis hubungan pangkalan data. Hubungan ini adalah satu-dengan-banyak, banyak-dengan-banyak, dan satu-dengan-satu. Jenis hubungan pangkalan data mempengaruhi kes penggunaan aplikasi anda.

model Django mewakili jadual pangkalan data dalam apl. Anda mesti mewujudkan hubungan yang baik antara jadual untuk mencipta sistem pangkalan data yang baik. Perhubungan pangkalan data menentukan cara menyimpan dan mempersembahkan data dalam aplikasi anda.



Untuk memahami hubungan pangkalan data, mulakan dengan mencipta projek Django bernama tudung. Aplikasi ini akan menjadi rangkaian sosial kejiranan. Ia akan menguruskan pelbagai aktiviti sosial, keselamatan dan perniagaan kejiranan.

Penduduk boleh mendaftar, melog masuk dan membuat profil. Mereka juga boleh membuat siaran dan iklan perniagaan untuk dilihat oleh semua orang.





Untuk bermula, buat pangkalan data yang akan menyimpan semua data kejiranan. Kemudian, anda akan membuat model Profil, NeighborHood, Business dan Post. Untuk mencipta model, anda mesti menentukan hubungan yang diperlukan oleh jadual pangkalan data.

Hubungan Pangkalan Data Satu-dengan-Satu

Hubungan satu dengan satu membayangkan rekod dalam satu model Django berkaitan dengan rekod lain dalam model lain. Kedua-dua rekod bergantung antara satu sama lain. Dalam kes ini, Model profil bergantung kepada Model pengguna untuk membuat profil pemastautin.





Jadi hanya boleh ada satu profil untuk setiap penduduk yang didaftarkan pada apl. Selain itu, tanpa pengguna, profil tidak boleh wujud.

from django.db import models 
from django.contrib.auth.models import User

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
name = models.CharField(max_length=80, blank=True)
bio = models.TextField(max_length=254, blank=True)
profile_picture = CloudinaryField('profile_picture', default='default.png')
location = models.CharField(max_length=50, blank=True, null=True)
email = models.EmailField(null=True)

def __str__(self):
return f'{self.user.username} profile'

Model Pengguna Django ialah model pengesahan terbina dalam dalam Django. Anda tidak perlu mencipta model untuknya. Sebaliknya, import dari django.contrib.auth. The OneToOneField() pada Model profil mentakrifkan hubungan satu dengan satu.

The on_delete=models.CASCADE argumen menghalang pemadaman salah satu rekod ini. Anda mesti memadamkan rekod daripada kedua-dua jadual.

Anda boleh menggunakan antara muka pentadbir Django untuk menggambarkan perhubungan dalam apl anda. Untuk log masuk ke pentadbir Django, anda mesti mendaftar sebagai pengguna pentadbir yang dikenali sebagai a superuser .

Buat superuser dengan menjalankan arahan berikut pada terminal:

python manage.py createsuperuser

Akan ada gesaan untuk memasukkan nama pengguna, e-mel dan kata laluan anda. Sebaik sahaja anda melakukannya, mulakan pelayan.

menonton filem dalam talian secara percuma tanpa memuat turun atau mendaftar

Buka halaman pentadbir dalam penyemak imbas menggunakan URL http://127.0.0.1:8000/admin.

Anda akan melihat halaman pentadbir di mana anda boleh log masuk dengan kelayakan yang anda buat sebelum ini. Setelah log masuk, anda akan melihat Kumpulan dan Pengguna objek. Rangka kerja pengesahan Django menguruskan kedua-dua model ini. Di bahagian bawah, anda akan melihat Model profil.

Buka Profil model dan teruskan menambah profil. Anda akan melihat ia muncul seperti berikut:

  Pentadbir Django memaparkan hubungan antara profil dan model pengguna

Perhatikan bahawa anda mempunyai pilihan untuk membuat profil untuk pengguna. Jenis data OneToOneField() membolehkan anda membuat profil untuk pengguna yang disahkan. Beginilah cara apl mentadbir perhubungan satu dengan satu.

Hubungan Satu-dengan-Banyak

A hubungan satu-ke-banyak membayangkan bahawa satu rekod dalam model dikaitkan dengan banyak rekod dalam model lain. Ia juga dirujuk sebagai perhubungan banyak dengan satu.

Dalam kes anda, seorang pentadbir boleh membuat beberapa kejiranan. Tetapi setiap kejiranan hanya boleh dimiliki oleh seorang pentadbir. Anda boleh menggunakan jenis data ForeignKey untuk menentukan hubungan sedemikian.

Django mempunyai antara muka pentadbir terbina dalam. Anda tidak perlu mencipta model untuknya. Pentadbir mempunyai hak untuk mengurus kandungan dan menggambarkan apl daripada panel pentadbir.

Model yang menampung banyak rekod akan mempunyai Kunci asing . Ia mentakrifkan perhubungan sebagai satu kepada ramai. Kod di bawah menunjukkan tempat untuk meletakkan kunci.

class NeighbourHood(models.Model): 
admin = models.ForeignKey("Profile", on_delete=models.CASCADE, related_name='hood')
name = models.CharField(max_length=50)
location = models.CharField(max_length=60)
hood_logo = CloudinaryField('hood_logo', default='default.png')
description = models.TextField()
health_tell = models.IntegerField(null=True, blank=True)
police_number = models.IntegerField(null=True, blank=True)
Count= models.IntegerField(null=True, blank=True)

def __str__(self):
return f'{self.name} hood'

Anda boleh melihat perhubungan pada apl seperti yang digambarkan dalam gambar:

  Model kejiranan menunjukkan pilihan Pentadbir ditambah

The Kejiranan model kini mempunyai pentadbir. Bagi sesiapa sahaja untuk membuat kejiranan, mereka mesti mempunyai hak pentadbir. Dan satu kejiranan tidak boleh mempunyai ramai pentadbir.

Hubungan Pangkalan Data Banyak-ke-Banyak

Dalam banyak-ke-banyak hubungan, banyak rekod dalam satu model dikaitkan dengan yang lain dalam yang lain. Sebagai contoh, yang Pos dan Perniagaan model boleh mempunyai beberapa rekod antara satu sama lain. Pengguna boleh membuat beberapa iklan perniagaan dalam siaran mereka dan sebaliknya.

bolehkah anda mendapatkan saluran tempatan dengan roku

Walau bagaimanapun, mewujudkan perhubungan banyak-ke-banyak boleh membawa kepada data yang tidak tepat. Dalam rangka kerja lain, anda perlu mencipta jadual baharu untuk menyertai dua jadual.

Django mempunyai penyelesaian untuk ini. Apabila anda menggunakan medan banyak-ke-banyak, Ia mencipta jadual baharu yang memetakan dua jadual bersama-sama . Anda boleh meletakkan medan banyak-ke-banyak dalam salah satu daripada dua model, tetapi ia tidak sepatutnya dalam kedua-dua model.

class Post(models.Model): 
title = models.CharField(max_length=120, null=True)
post = models.TextField()
date = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='post_owner')
hood = models.ForeignKey(NeighbourHood, on_delete=models.CASCADE, related_name='hood_post')
business = models.ManyToManyField(Business)

def __str__(self):
return f'{self.title} post'

Sekarang, apabila anda melihat Pos model pada panel pentadbir, anda boleh melampirkan beberapa perniagaan pada satu siaran.

  Model siaran mempunyai pilihan untuk menambah beberapa perniagaan

Django Memudahkan Hubungan Pangkalan Data

Jenis pangkalan data yang anda gunakan untuk aplikasi anda menentukan cara memanfaatkan data. Django mempunyai sistem komprehensif yang memudahkan penyambungan dan pengendalian pangkalan data hubungan.

Ciri Django memudahkan untuk menyimpan dan mendapatkan semula data daripada jadual berkaitan. Ia mempunyai API terbina yang menyambung dan mencipta hubungan pangkalan data untuk apl anda.

Perhubungan pangkalan data menentukan gelagat aplikasi anda. Sama ada anda menggunakan perhubungan satu-dengan-satu, satu-ke-banyak atau ramai-ke-banyak bergantung kepada anda.

Dengan Django, anda boleh mengkonfigurasi dan menguji ciri tanpa melanggar aplikasi anda. Gunakan Django untuk menjamin sistem pangkalan data dan mengoptimumkan pengalaman pembangun anda.