


Kemahiran sistem pengurusan bahagian belakang dalam rangka kerja Django (Bahagian 2)
Kemahiran sistem pengurusan belakang dalam rangka kerja Django (Bahagian 2)
Dalam artikel sebelumnya, kami memperkenalkan beberapa kemahiran sistem pengurusan bahagian belakang dalam rangka kerja Django, seperti cara menyesuaikan reka letak halaman latar belakang, cara untuk Penapis tersuai, cara menyesuaikan tindakan, dsb. Artikel ini akan terus memperkenalkan lebih banyak petua praktikal untuk membantu anda menggunakan rangka kerja Django dengan lebih baik.
- Cara menangani nilai lalai ForeignKey dalam Model
Dalam Model Django, ForeignKey ialah jenis medan yang sangat praktikal. Walau bagaimanapun, apabila kami mencipta contoh Model baharu, medan jenis ForeignKey perlu menentukan tika Model berkaitan untuk disimpan dengan jayanya. Jika tidak dinyatakan, nilai NULL akan disimpan secara lalai. Dalam sesetengah kes, kami mungkin mahu medan jenis ForeignKey disimpan dalam contoh perkaitan lalai Dalam kes ini, kami boleh menggunakan kaedah get_or_create Django.
Sebagai contoh, kami mempunyai Model Produk dan mentakrifkan medan ProductCategory ForeignKey untuknya. Kami berharap apabila kami mencipta tika Produk baharu, ia akan mengaitkan tika Kategori lalai secara automatik the Model :
class Product(models.Model): name = models.CharField(max_length=100) category = models.ForeignKey(ProductCategory, default=get_default_category) def get_default_category(): """ 返回默认的ProductCategory实例或者创建一个新的实例 """ category, _ = ProductCategory.objects.get_or_create(name='Default Category') return category
Dengan cara ini, apabila kami mencipta tika Produk baharu, tika ProductCategory bernama "Kategori Lalai" akan dikaitkan secara automatik secara lalai.
- Cara untuk mengehadkan Model dalam sistem pengurusan latar belakang untuk hanya mencipta satu contoh
Dalam sesetengah kes, kami mungkin mahu Model mencipta hanya satu contoh, seperti dalam tetapan Global tapak web. Pada masa ini, anda boleh menggunakan perpustakaan SingletonModel Django, yang menyediakan BaseSingletonModel yang membolehkan kami menukar mana-mana Model kepada Model Singleton dengan mudah.
Sebagai contoh, kami mempunyai Model GlobalSettings dan berharap ia hanya boleh mencipta satu contoh Ia boleh ditakrifkan seperti ini:
from singleton_models.models import SingletonModel class GlobalSettings(SingletonModel): site_name = models.CharField(max_length=100, default='') site_url = models.URLField(default='') # 其他全局设置字段
Selepas ia ditakrifkan, dalam sistem pengurusan latar belakang, kami. hanya boleh membuat dan mengedit contoh GlobalSettings.
- Cara menambah perisian tengah tersuai pada sistem pengurusan bahagian belakang
Dalam rangka kerja Django, perisian tengah ialah pemintas yang digunakan untuk memproses permintaan dan respons. Ia boleh mengendalikan permintaan atau respons sebelum permintaan mencapai fungsi paparan, selepas fungsi pandangan mengendalikan permintaan, dan sebelum respons dihantar kepada klien. Antaranya, menambahkan perisian tengah tersuai pada sistem pengurusan latar belakang membolehkan kami memintas dan memproses operasi pentadbir dengan mudah.
Sebagai contoh, jika kami mahu pentadbir perlu memasukkan kata laluan pengesahan sekunder semasa membuat operasi pengubahsuaian tertentu, kami boleh menambah kod berikut pada fail settings.py projek Django:
MIDDLEWARE = [ # 默认的中间件 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', # 自定义中间件 'myapp.middleware.ConfirmPasswordMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] CONFIRMED_ACTIONS = ( 'myapp.views.EditProductView', 'myapp.views.DeleteProductView', ) class ConfirmPasswordMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): # 根据请求的URL判断是哪个视图函数,如果是CONFIRMED_ACTIONS中的视图函数,需要做二次确认 view_func = resolve(request.path_info).func if view_func and view_func.__module__ + "." + view_func.__name__ in CONFIRMED_ACTIONS: if not request.session.get('password_confirmed', False): # 没有输入二次确认密码,跳转到输入页面 return redirect(reverse('confirm-password')) response = self.get_response(request) return response
Kod di atas, kami mentakrifkan ConfirmPasswordMiddleware, yang memintas permintaan sebelum ia mencapai fungsi paparan dan menentukan sama ada kata laluan pengesahan kedua diperlukan. CONFIRMED_ACTIONS ialah senarai fungsi paparan yang memerlukan pengesahan kedua Kami boleh menambah atau memadamnya mengikut keperluan. Dalam fungsi paparan, kami boleh bertanya sama ada pengguna semasa telah memasukkan kata laluan pengesahan kedua melalui request.session.get('password_confirmed', False).
- Cara menambah serializer pada Model sistem pengurusan backend
Dalam rangka kerja Django, Serializer ialah kelas yang digunakan untuk menukar Model kepada kamus atau format JSON. Menambah penyeri pada sistem pengurusan bahagian belakang membolehkan kami menukar Model kepada format JSON dan mengeluarkannya dengan mudah.
Sebagai contoh, kami mempunyai Model Produk dan ingin menukarnya kepada format JSON dan mengeluarkannya dalam sistem pengurusan latar belakang Ia boleh ditakrifkan seperti ini:
from django.contrib import admin from django.core.serializers import serialize from django.http import HttpResponse class ProductAdmin(admin.ModelAdmin): # 列表视图显示的字段列表 list_display = ('name', 'price', 'category') # 自定义action函数 def export_as_json(self, request, queryset): response = HttpResponse(content_type="application/json") serializers.serialize("json", queryset, stream=response) return response export_as_json.short_description = "导出为JSON" # 自定义函数按钮 change_list_template = 'admin/myapp/product/list.html' def get_urls(self): urls = super().get_urls() my_urls = [ path('my_view/', self.my_view), ] return my_urls + urls def my_view(self, request): data = serialize('json', Product.objects.all()) return JsonResponse(data, safe=False) admin.site.register(Product, ProductAdmin)
Dalam kod di atas, kami menambah Fungsi export_as_json disediakan, yang boleh menukar contoh Model yang dipilih pada masa ini ke dalam format JSON dan mengeluarkannya kepada klien. Pada masa yang sama, kami juga menambahkan fungsi my_view pada ProductAdmin, yang boleh menanyakan secara terus semua tika Model dan menukarnya kepada output format JSON.
Ringkasan
Sistem pengurusan latar belakang rangka kerja Django ialah alat penting untuk membangunkan aplikasi web Ia menyediakan banyak fungsi sedia yang membolehkan kami mengurus contoh Model, pengubahsuaian kelompok dan pemadaman . Dalam artikel ini, kami memperkenalkan beberapa petua praktikal untuk sistem pengurusan bahagian belakang rangka kerja Django, termasuk cara mengendalikan nilai lalai ForeignKey dalam Model, cara mengehadkan Model dalam sistem pengurusan bahagian belakang untuk membuat satu contoh sahaja dan cara menambah penyesuaian kepada sistem pengurusan bahagian belakang Tentukan perisian tengah dan cara menambah penyeri pada Model sistem pengurusan bahagian belakang. Melalui penggunaan teknik ini, kita boleh menggunakan sistem pengurusan latar belakang rangka kerja Django dengan lebih baik.
Atas ialah kandungan terperinci Kemahiran sistem pengurusan bahagian belakang dalam rangka kerja Django (Bahagian 2). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perkongsian Petua Win11: Satu helah untuk melangkau log masuk akaun Microsoft Windows 11 ialah sistem pengendalian terkini yang dilancarkan oleh Microsoft, dengan gaya reka bentuk baharu dan banyak fungsi praktikal. Walau bagaimanapun, bagi sesetengah pengguna, perlu log masuk ke akaun Microsoft mereka setiap kali mereka boot sistem boleh menjadi agak menjengkelkan. Jika anda salah seorang daripada mereka, anda juga boleh mencuba petua berikut, yang akan membolehkan anda melangkau log masuk dengan akaun Microsoft dan memasuki antara muka desktop secara langsung. Pertama, kita perlu mencipta akaun tempatan dalam sistem untuk log masuk dan bukannya akaun Microsoft. Kelebihan melakukan ini ialah

Dalam bahasa C, ia mewakili penunjuk, yang menyimpan alamat pembolehubah lain & mewakili pengendali alamat, yang mengembalikan alamat memori pembolehubah. Petua untuk menggunakan penunjuk termasuk mentakrifkan penunjuk, membatalkan rujukan dan memastikan bahawa penunjuk menunjuk ke alamat yang sah & termasuk mendapatkan alamat pembolehubah, dan mengembalikan alamat elemen pertama tatasusunan apabila mendapatkan alamat elemen tatasusunan; . Contoh praktikal yang menggambarkan penggunaan penunjuk dan pengendali alamat untuk membalikkan rentetan.

Kami sering membuat dan mengedit jadual dalam excel, tetapi sebagai orang baru yang baru bersentuhan dengan perisian, cara menggunakan excel untuk mencipta jadual bukanlah semudah bagi kami. Di bawah, kami akan menjalankan beberapa latihan mengenai beberapa langkah penciptaan meja yang perlu dikuasai oleh pemula, iaitu pemula, Kami berharap ia akan membantu mereka yang memerlukan. Contoh borang untuk pemula ditunjukkan di bawah: Mari lihat cara melengkapkannya! 1. Terdapat dua kaedah untuk mencipta dokumen excel baharu. Anda boleh klik kanan tetikus pada lokasi kosong pada fail [Desktop] - [Baru] - [xls]. Anda juga boleh [Mula]-[Semua Program]-[Microsoft Office]-[Microsoft Excel 20**] 2. Dwiklik bekas baharu kami

VSCode (Visual Studio Code) ialah editor kod sumber terbuka yang dibangunkan oleh Microsoft Ia mempunyai fungsi yang berkuasa dan sokongan pemalam yang kaya, menjadikannya salah satu alat pilihan untuk pembangun. Artikel ini akan menyediakan panduan pengenalan untuk pemula untuk membantu mereka menguasai kemahiran menggunakan VSCode dengan cepat. Dalam artikel ini, kami akan memperkenalkan cara memasang VSCode, operasi penyuntingan asas, kekunci pintasan, pemasangan pemalam, dsb., dan menyediakan contoh kod khusus kepada pembaca. 1. Pasang VSCode dahulu, kita perlu

Helah Win11 didedahkan: Cara memintas log masuk akaun Microsoft Baru-baru ini, Microsoft melancarkan sistem pengendalian baharu Windows11, yang telah menarik perhatian meluas. Berbanding dengan versi sebelumnya, Windows 11 telah membuat banyak pelarasan baharu dari segi reka bentuk antara muka dan penambahbaikan fungsi, tetapi ia juga telah menyebabkan beberapa kontroversi Perkara yang paling menarik perhatian ialah ia memaksa pengguna untuk log masuk ke sistem dengan akaun Microsoft . Bagi sesetengah pengguna, mereka mungkin lebih terbiasa log masuk dengan akaun tempatan dan tidak bersedia untuk mengikat maklumat peribadi mereka ke akaun Microsoft.

Tajuk: Petua Pengaturcaraan PHP: Cara Melompat ke Halaman Web dalam masa 3 Saat Dalam pembangunan web, kita sering menghadapi situasi di mana kita perlu melompat ke halaman lain secara automatik dalam tempoh masa tertentu. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan teknik pengaturcaraan untuk melompat ke halaman dalam masa 3 saat, dan memberikan contoh kod khusus. Pertama sekali, prinsip asas lompat halaman direalisasikan melalui medan Lokasi dalam pengepala respons HTTP. Dengan menetapkan medan ini, penyemak imbas secara automatik boleh melompat ke halaman yang ditentukan. Di bawah ialah contoh mudah yang menunjukkan cara menggunakan P

Borang adalah bahagian penting dalam menulis laman web atau aplikasi. Laravel, sebagai rangka kerja PHP yang popular, menyediakan kelas bentuk yang kaya dan berkuasa, menjadikan pemprosesan borang lebih mudah dan lebih cekap. Artikel ini akan memperkenalkan beberapa petua tentang menggunakan kelas borang Laravel untuk membantu anda meningkatkan kecekapan pembangunan. Yang berikut menerangkan secara terperinci melalui contoh kod tertentu. Mencipta borang Untuk mencipta borang dalam Laravel, anda perlu menulis borang HTML yang sepadan dalam paparan terlebih dahulu. Apabila bekerja dengan borang, anda boleh menggunakan Laravel

Dalam pembangunan program bahasa Go, kemahiran pembinaan semula fungsi adalah bahagian yang sangat penting. Dengan mengoptimumkan dan memfaktorkan semula fungsi, anda bukan sahaja boleh meningkatkan kualiti dan kebolehselenggaraan kod, tetapi juga meningkatkan prestasi program dan kebolehbacaan. Artikel ini akan menyelidiki teknik pembinaan semula fungsi dalam bahasa Go, digabungkan dengan contoh kod khusus, untuk membantu pembaca memahami dan menggunakan teknik ini dengan lebih baik. 1. Contoh kod 1: Ekstrak serpihan kod pendua Dalam pembangunan sebenar, kita sering menghadapi serpihan kod yang digunakan semula Pada masa ini, kita boleh mempertimbangkan untuk mengekstrak kod berulang sebagai fungsi bebas
