Berbagi teknologi

"Django" hadir dengan backendnya sendiri

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


tema: smartblue

Pengantar artikel ini

Suka + Ikuti + Kumpulkan = Pelajari

00.png

Sudah dibicarakan di artikel sebelumnya Django beroperasiMySQL Metode ini menjelaskan cara membuat model dan cara menambah, menghapus, mengubah, dan menanyakan database. Tapi Anda harus menulis kode setiap kali Anda mengubah data, yang agak merepotkan.

Apakah ada cara yang lebih sederhana?

Beberapa beberapa,Django Faktanya, ia hadir dengan backend, yaitu antarmuka grafis, dan Anda dapat dengan mudah mengoperasikan berbagai konten data di dalamnya.

Selanjutnya, mari kita bahas tentang cara menggunakan backend bawaan ini.

Konfigurasikan alamat perutean latar belakang

Sebenarnya menciptakan Django Selama proyek berlangsung, kami telah mengonfigurasi alamat perutean di latar belakang untuk kami.

Jika Anda mengikuti artikel saya sebelumnya selangkah demi selangkah, perutean latar belakang mungkin terhapus. Tidak masalah, berbaikan saja.

Buka proyek urls.py file, ditemukanurlpatterns Variabel ini digunakan untuk mengisi background routing.

```ular piton

File perutean proyek urls.py

dari django.urls impor jalur dari blog.views impor blogIndex

urlpatterns = [ # Rute lain dihilangkan # Kalimat berikut adalah jalur perutean untuk mengonfigurasi latar belakang ('admin/', admin.site.urls) ] ```

Setelah konfigurasi selesai, mulai proyek dan buka di browser http://127.0.0.1:8000/admin/ Anda dapat melihat halaman login di latar belakang.

01.png

Buat akun administrator

Jika ada halaman login, Anda harus memiliki akun yang sesuai untuk login.

Jadi kita perlu membuat akun manajemen super terlebih dahulu.

Buka terminal, masuk ke direktori proyek, dan masukkan perintah berikut untuk membuat akun manajemen super.

python manage.py createsuperuser

Kemudian terminal akan mengembalikan baris informasi ini kepada Anda, meminta Anda memasukkan nama pengguna manajemen super (akun)

Username (leave blank to use 'xxx'): admin

'xxx' ini nama komputer saya, Anda dapat memasukkan akun manajemen super setelah titik dua.Yang saya masukkan di sini adalahadmin

Setelah memasukkan nama pengguna Anda, ia akan terus meminta Anda memasukkan alamat email Anda.

Email address: 123@qq.com

Setelah memasukkan alamat email Anda, Anda akan diminta memasukkan kata sandi dua kali.

  1. Password:
  2. Password (again):

Kata sandi yang saya masukkan di sini adalah 12345678, ini dengan cerdas mengingatkan saya pada kata sandi yang terlalu umum, tetapi saya mengetik y dan tetap menggunakan kata sandi sederhana tersebut.

  1. This password is too common.
  2. This password is entirely numeric.
  3. Bypass password validation and create user anyway? [y/N]: y
  4. Superuser created successfully.

Melihat Superuser created successfully. Kalimat tersebut berarti akun telah berhasil dibuat.

Sekarang buka di browser http://127.0.0.1:8000/admin/, masukan akun admin, masukan kata sandi 12345678 Anda berhasil masuk.

02.png

Latar belakang asosiasi model

Kami sebelumnya telah menggunakan kode untuk mengoperasikan database, yang tidak begitu nyaman.

Django Menyediakan cara bagi kita untuk mengikat model aplikasi ke latar belakang, sehingga kita dapat langsung mengoperasikan data di antarmuka latar belakang.

Dibuat dari artikel sebelumnya account Terapkan sebagai contoh.

ada account ditemukan dalam aplikasiadmin.py file, tulis kode berikut.

```ular piton

akun/admin.py

dari django.contrib impor admin dari akun.model impor Pengguna

class UserAdmin(admin.ModelAdmin): # Konten yang akan ditampilkan list_display = ['nama pengguna', 'email']

Ikat model Pengguna ke UserAdmin

admin.site.register(Pengguna, UserAdmin) ```

Perlu diperkenalkan di sini dulu admin DanUser, karena kami ingin account Model aplikasi dikaitkan dengan backend.

Buat file bernama UserAdmin Kelas, tulislah di dalamnyalist_display = ['username', 'email'] , artinya ditampilkan di halaman latar belakangusername Danemail kedua bidang ini.

akhirnya admin.site.register(User, UserAdmin) bermaksud untukUser Model dan backend terikat bersama.

Jalankan proyek dan buka http://127.0.0.1:8000/admin/ Dan masuk, Anda dapat melihat model yang baru saja Anda ikat.

03.png

Klik "Tabel Pengguna s" untuk melihat informasi tentang tabel ini di database.

04.png

Anda dapat mengklik tombol "Tambah" untuk menambahkan data baru ke tabel ini.

05.png

Anda juga dapat mengubah dan menghapus data tertentu.

06.png

Data yang diubah pada halaman latar belakang akan berdampak langsung pada data di database.

Letakkan dengan cara yang sama blog Model aplikasi dikaitkan dengan backend. Pengoperasiannya di sini sama seperti sebelumnya, jadi saya tidak akan menjelaskannya lagi.

```ular piton

blog/admin.py

dari django.contrib impor admin dari blog.models impor Artikel

Daftarkan model Anda di sini.

class ArticleAdmin(admin.ModelAdmin): # Konten yang akan ditampilkan list_display = ['id', 'title']

Ikat model Pengguna ke UserAdmin

admin.site.register(Artikel, AdminArtikel) ```

07.png

Mari buat artikel dan lihat.

Klik tombol Tambah di sebelah "Tabel Informasi Artikel" dan isi konten berikut.

08.png

Klik SAVE Setelah menekan tombol, data ditulis ke database. Kembali ke halaman daftar "Tabel Informasi Artikel" untuk melihat data yang baru saja ditulis.

09.png

Jika Anda tidak yakin dengan konten keseluruhan proyek, Anda dapat melihat kembali apa yang saya kompilasi"Kolom Django"

Konfigurasi dasar backend

Pada operasi sebelumnya, pekerja yang penuh perhatian mungkin memperhatikan beberapa masalah, seperti mengapa antarmuka menggunakan bahasa Inggris? Mengapa ada huruf "s" di belakang nama tabel?Mengapa kolom Pengguna opsional saat membuat artikel bukan nama pengguna, melainkanUser object(1)

Selanjutnya kita akan menyelesaikan masalah tersebut satu per satu.

Tetapkan zona waktu dan bahasa

Buka proyek settings.py file, ditemukanLANGUAGE_CODE , tetapkan nilainya menjadi'zh-hans' .dan kemudian temukanTIME_ZONE atur keAsia/Shanghai

```ular piton

pengaturan.py

bahasa

KODE_BAHASA = 'zh-hans'

Zona waktu

ZONA_WAKTU = 'Asia/Shanghai' ```

10.png

Ubah nama kolom menjadi bahasa Mandarin

Tapi saat ini ACCOUNT DanBLOG Masih dalam bahasa Inggris, nihDjango Itu tidak bisa langsung diterjemahkan ke dalam bahasa Mandarin. Anda perlu mengkonfigurasi alias untuk kedua aplikasi ini.

11.png

Konfigurasinya ada di masing-masing aplikasi apps.py mengajukan, melaluiverbose_name Variabel untuk menyesuaikan nama kolom.

oleh account Terapkan sebagai contoh.

```ular piton

akun/apps.py

dari django.apps impor AppConfig

kelas AccountConfig(AppConfig): defaultmobilfield = 'django.db.models.BigAutoField' name = 'akun' verbose_name = 'Manajemen Pengguna' ```

blog Hal yang sama juga berlaku.

```ular piton

blog/apps.py

dari django.apps impor AppConfig

kelas BlogConfig(AppConfig): defaultmobilfield = 'django.db.models.BigAutoField' name = 'blog' verbose_name = 'Manajemen Artikel' ```

Saat ini, segarkan halaman dan Anda akan melihat bahwa nama kolom telah diubah.

12.png

hapus bentuk jamak

Huruf "s" setelah nama tabel adalah Django Itu disertakan. Untuk menghapus "s" ini, Anda juga perlu mengkonfigurasi alias tabel.

Di setiap file model aplikasi (models.py) dikonfigurasikan di Meta informatifverbose_name_plural

oleh account Terapkan sebagai contoh.

```ular piton

akun/models.py

dari django.db impor model

Buat tabel pengguna

kelas Pengguna(model.Model): id = model.AutoField(utamakey=Benar) # nama pengguna = model.CharField('nama pengguna', makspanjang=30, null=Benar, kosong=Benar, unik=Benar) # Kata sandi kata sandi = models.CharField('kata sandi', max_length=30) # Email email = models.EmailField('Email', unik=Benar, null= Benar, kosong=Benar)

  1. class Meta:
  2. # 自定义表名
  3. db_table = 'user'
  4. # 表别名
  5. verbose_name = '用户表'
  6. verbose_name_plural = '用户表'

```

Refresh halaman dan Anda akan melihat bahwa "s" setelah "User Table" hilang.

13.png

blog Alasan yang sama.

Tampilkan bidang kunci asing

Saat kita menambahkan artikel, kita perlu memasukkan dan memilih penulis artikel tersebut. Penulis tabel artikel dikaitkan dengan tabel pengguna.

Saat menambahkan penulis, halaman tersebut langsung menampilkan nama "Objek pengguna". Jika jumlah pengguna bertambah, kami tidak akan bisa membedakan siapa itu siapa.

14.png

Kita harus menampilkan nama pengguna.

Mari kita modifikasi dulu blog Bidang yang akan ditampilkan.

```ular piton

blog/admin.py

dari django.contrib impor admin dari blog.models impor Artikel

Dapatkan penulis

Objek obj ini digunakan untuk menerima instance Article

def get_author(obj): kembalikan obj.pengguna.namapengguna

Daftarkan model Anda di sini.

class ArticleAdmin(admin.ModelAdmin): # Konten yang akan ditampilkan # Anda dapat menggunakan get here penulis diganti dengan nama pengguna. Tidak perlu menambahkan tanda kutip tunggal atau tanda kurung di sini. # Django menggunakan daftar Saat ditampilkan, parameter akan diteruskan ke metode secara default. daftartampilkan = ['id', dapatkanpenulis, 'judul', 'konten']

mendapatkanpenulis.pendekdeskripsi = 'Penulis'

Ikat model Pengguna ke UserAdmin

admin.site.register(Artikel, AdminArtikel) ```

Kaitkan kunci asing dengan metode get_author username Bidang ditampilkan.

15.png

Pada titik ini kita akan dapat melihat siapa penulis artikel ini. Namun kita tetap perlu menampilkan nama pengguna di halaman edit.

Perlu diubah saat ini User Hanya model yang bisa melakukannya.

```ular piton

akun/models.py

dari django.db impor model

Buat tabel pengguna

kelas Pengguna(model.Model): id = model.AutoField(utamakey=Benar) # nama pengguna = model.CharField('nama pengguna', makspanjang=30, null=Benar, kosong=Benar, unik=Benar) # Kata sandi kata sandi = models.CharField('kata sandi', max_length=30) # Email email = models.EmailField('Email', unik=Benar, null= Benar, kosong=Benar)

  1. class Meta:
  2. # 自定义表名
  3. db_table = 'user'
  4. # 表别名
  5. verbose_name = '用户表'
  6. verbose_name_plural = '用户表'
  7. # 返回用户名
  8. def __str__(self):
  9. return self.username

```

ada account/models.py Tambahkan di akhir__str__ metode, kembaliusername

Saat ini, nama pengguna dapat dilihat pada halaman pengeditan informasi artikel.

16.png

Tautan lompat khusus yang dapat diedit

Di halaman pengelolaan artikel, jika Anda ingin mengedit artikel, Anda hanya dapat mengklik kolom "ID" untuk melompat ke halaman pengeditan.Jika Anda ingin melompat ke halaman edit dengan mengklik kolom lain, Anda perlu mengonfigurasinya secara manual.blog/admin.py Misalnya, saya ingin mengklik "JUDUL" untuk melompat ke halaman pengeditan.

17.png

```ular piton

blog/admin.py

Hilangkan beberapa kode

class ArticleAdmin(admin.ModelAdmin): # Daftar konten yang akan ditampilkantampilkan = ['id', dapatkanpenulis, 'judul', 'konten'] # daftar bidang yang dapat dilompatimenampilkanlink = ['id', 'title'] # Hilangkan beberapa kode```

saya disini ArticleAdmin ditambahkanlist_display_links = ['id', 'title'], menunjukkan klik id Dantitle Anda dapat melompat ke halaman edit.

atribut hanya-baca

Saat mengedit konten, kami tidak ingin beberapa bidang dapat dimodifikasi. Misal ID blog tidak bisa diubah.

diperbolehkan blog/admin.py Menambahkanreadonly_fields Menentukan bidang yang tidak dapat diubah.

```ular piton

blog/admin.py

Hilangkan beberapa kode

class ArticleAdmin(admin.ModelAdmin): # Atribut read-only readonly_fields = ['id'] # Hilangkan beberapa kode````

Saat mengedit saat ini, nilai kolom id tidak dapat diubah.

18.png


Itu saja untuk artikel ini. Pada artikel selanjutnya, saya akan memperkenalkan cara memuat informasi dalam database di halaman depan.

IMG_8982.GIF

Suka + Ikuti + Kumpulkan = Pelajari