Prasyarat:
Sebelum mempraktikkan skrip tutorial ini, anda harus menyelesaikan tugas-tugas berikut.
A. Pasang Django versi 3+ di Ubuntu 20+ (lebih baik)
B. Buat projek Django
C. Jalankan pelayan Django untuk memeriksa pelayan berfungsi dengan betul atau tidak.
Sediakan aplikasi Django:
A. Jalankan arahan berikut untuk membuat aplikasi Django bernama pangkalan dataapp.
$ python3 menguruskan.py startapp pangkalan dataappB. Jalankan arahan berikut untuk membuat pengguna untuk mengakses pangkalan data Django. Sekiranya anda telah melengkapkan pengguna sebelumnya, maka anda tidak perlu menjalankan perintah.
$ python3 menguruskan.py createuperuserC. Tambahkan nama aplikasi di DIPASANG_APP sebahagian daripada tetapan.fail py.
INSTALLED_APPS = […
'pengesahanapp'
]
D. Buat folder bernama templat di dalam pangkalan dataapp folder dan tetapkan templat lokasi aplikasi di TEMPAT sebahagian tetapan.py fail.
TEMPLATES = [… .
'DIRS': ['/ rumah / fahmida / django_pro / databaseapp / templat'],
… .
,
]
Model reka bentuk dengan atribut lalai dan nol:
Ubah suai model.py fail dengan skrip berikut untuk membuat jadual bernama produk yang akan mengandungi empat medan tanpa medan id. Ini nama, harga, tarikh_kilang, dan tarikh luput. Nilai bagi batal atribut ditetapkan ke True untuk semua bidang. Nilai yang kosong atribut ditetapkan ke True untuk semua bidang juga. Ini bermaksud pengguna boleh mengosongkan bidang sebelum menghantar borang yang akan menggunakan model ini. The lalai nilai atribut ditetapkan untuk harga, tarikh_kilang, dan tarikh tamat tempoh.
model.py
# Modul model importdari django.model import db
# Buat kelas untuk menentukan struktur jadual Guru
Produk kelas (model.Model):
nama = model.CharField (max_length = 50, null = True, blank = True)
harga = model.IntegerField (null = True, default = ", blank = True)
tarikh_ pembuatan = model.DateField (null = True, default = '0000-00-00', kosong = Benar)
expire_date = model.DateField (null = True, default = '0000-00-00', kosong = Benar)
Jalankan arahan migrasi berikut untuk membuat fail migrasi yang diperlukan dan jadual pangkalan data pangkalan data SQLite.
$ python3 menguruskan.py makemigrations databaseapp$ python3 menguruskan.py berhijrah
Penyisipan data menggunakan Papan Pemuka Pentadbiran Django:
Ubah suai kandungan pentadbir.py fail dengan skrip berikut untuk mendaftarkan model dalam pangkalan data.
pentadbir.py
Ubah suai url.py fail dengan skrip berikut untuk menentukan jalan untuk membuka Django Administrative Dashboard.
url.py
# Import modul pentadbirdari django.admin import contrib
# Modul laluan import
dari django.laluan import url
# Tentukan jalan untuk pelanggan dan pentadbir
urlpatterns = [
jalan ('admin /', pentadbir.tapak.url)
]
Sekarang, jalankan pelayan Django dan pergi ke Papan Pemuka Pentadbiran Django dengan menggunakan URL berikut.
http: // localhist: 8000 / pentadbir
buka borang kemasukan produk dengan mengklik Tambah produk. Sekiranya pengguna menyerahkan borang tanpa memasukkan data, maka output berikut akan muncul di penyemak imbas. Di sini, dua medan tarikh menunjukkan kesilapan kerana nilai lalai bidang tarikh tidak dalam format yang sah.
Output berikut akan muncul setelah menambahkan data tarikh yang sah. Di sini, harga medan kosong kerana menggunakan atribut lalai.
Penyisipan data menggunakan templat:
Cara memasukkan data ke dalam produk jadual menggunakan borang HTML telah ditunjukkan di bahagian ini. Di sini, elemen bentuk akan dihasilkan berdasarkan model yang dibuat sebelumnya.
bentuk.py
# Modul borang importdari borang import django
# Import model Pelanggan
dari dbapp.model mengimport Produk
# Tentukan kelas untuk borang pelanggan
ProductForm kelas (borang.ModelForm):
kelas Meta:
model = Produk
bidang = '__all__'
Buat fail HTML bernama produk.html di dalam templat folder aplikasi dengan skrip berikut. Data borang akan dikirimkan ketika pengguna akan mengklik pada Jimat butang.
produk.html
Borang Kemasukan Pelanggan
Ubah suai pandangan.py fail dengan skrip berikut untuk memasukkan data ke dalam produk jadual setelah mengesahkan borang. TambahProduk () fungsi didefinisikan dalam skrip untuk memeriksa formulir dikirimkan atau tidak, dan jika formulir dikirimkan, maka ia akan memeriksa data formulir itu valid atau tidak valid. Sekiranya ianya sah() fungsi kembali benar, maka data akan dimasukkan ke dalam produk jadual, dan mesej kejayaan akan dipaparkan di penyemak imbas.
pandangan.py
# Import modul HttpResponsedari django.http.respon import HttpResponse
# Modul rendering import
dari django.pintasan import pintasan
# Import ProductForm
dari dbapp.borang import ProductForm
# Tentukan fungsi untuk menambah kemasukan produk
def AddProduct (permintaan):
sekiranya diminta.kaedah == "POST":
form = ProductForm (permintaan.POS)
# Sekiranya data borang itu sah atau tidak
sekiranya bentuk.ianya sah():
cuba:
# Simpan data borang ke dalam pangkalan data
bentuk.simpan ()
# Tentukan mesej untuk pengguna
data = ['
Produk ditambahkan.
']# Kembalikan tindak balas
mengembalikan HttpResponse (data)
kecuali:
lulus
lain:
# Tentukan objek bentuk
bentuk = ProductForm ()
# Tunjukkan borang penyertaan produk
return render (permintaan, 'produk.html ', ' form ': form)
Ubah suai url.py fail dengan skrip berikut untuk menentukan jalan untuk memanggil fungsi pandangan.
url.py
# Import modul pentadbirdari django.admin import contrib
# Modul laluan import
dari django.laluan import url
# Paparan import
dari paparan import dbapp
# Tentukan jalan untuk pelanggan dan pentadbir
urlpatterns = [
jalan (", pandangan.TambahProduk),
jalan ('admin /', pentadbir.tapak.url)
]
Sekarang, jalankan pelayan Django dan buka URL asas di penyemak imbas.
http: // localhist: 8000 /
Borang berikut akan muncul.
Yang berikut Kesalahan Nilai akan muncul sekiranya pengguna menghantar borang tanpa menambahkan data dalam borang. Di sini, harga medan adalah bilangan bulat yang tidak boleh menjadi tali kosong.
Sekiranya pengguna memasukkan data yang sah seperti borang di bawah dan menekan Jimat butang, rekod produk baru akan dimasukkan ke dalam pangkalan data.
Gambar berikut akan muncul jika anda membuka rakaman yang baru dimasukkan dari Django Dashboard.
Kesimpulan:
Model telah dirancang dengan menggunakan atribut null dan default dalam tutorial ini. Seterusnya, cara memasukkan data dalam bidang ini di bahagian belakang dan bahagian depan ditunjukkan di sini untuk membantu pembaca mengetahui penggunaan atribut lalai dan nol dalam pangkalan data Django.