Apakah kaedah pembangunan Django
BAHAGIAN 1. Sebelum anda bermula
Django, sebagai rangka kerja aplikasi web yang berkuasa, secara beransur-ansur menjadi popular dalam beberapa tahun kebelakangan ini, dan semakin ramai pembangun Python menerima Django , tetapi juga disebabkan oleh banyaknya kandungan dalam Django, apabila semua orang mula-mula memasuki Django, mereka sentiasa berasa sedikit "sedikit terharu" dan tidak tahu dari mana hendak bermula. Atau selepas pemahaman awal, anda masih tidak pasti sama ada pendekatan semasa adalah elegan, cara mengatur projek dan cara menjadikan kod lebih boleh digunakan semula.
BAHAGIAN 2. Struktur Projek
Struktur projek yang baik adalah separuh daripada perjuangan.
2.1 Struktur keseluruhan
Secara lalai, struktur projek yang dihasilkan oleh Django adalah lebih kurang seperti ini:
Seperti yang anda mahu Memandangkan bilangan aplikasi dalam projek terus meningkat, bilangan pakej dalam direktori akar tempatan akan terus meningkat, menjadikannya semakin sukar untuk diselenggara Oleh itu, kami perlu mempunyai rancangan yang jelas untuk keseluruhan projek dan meletakkan setiap satu dengan sewajarnya fail.
Jika projek itu kecil dan anda tidak bercadang untuk menggunakan semula Aplikasi di dalamnya, anda boleh mempertimbangkan kaedah berikut:
folder venv Persekitaran virtualenv tempat projek disimpan adalah pilihan dan boleh diletakkan di tempat lain.
Pangkalan data ialah Apl yang digunakan khusus untuk menyimpan model dan mengurus arahan serta beberapa penapis tersuai yang digunakan dalam templat Ia disimpan dalam direktori akar projek.
dokumen dan log masing-masing menyimpan dokumen berkaitan projek dan fail log yang dijana semasa masa jalan.
statik menyimpan fail statik, seperti css/js/img/font, dsb.
menggunakan menyimpan fungsi alat, kelas yang digunakan dalam projek dan beberapa modul biasa, seperti pembalak, dsb.
templat menyimpan fail templat Templat induk atau templat yang diwarisi oleh berbilang templat diletakkan dalam direktori akar dan dinamakan dengan nama seperti asas untuk penyelenggaraan mudah .
Direktori web menyimpan semua Aplikasi Jika terdapat banyak Aplikasi, ia boleh dibahagikan kepada lebih banyak pakej untuk perancangan. Setiap pakej menyimpan jenis Aplikasi.
2.2 Model
Dalam bahagian modul Model, kami terutamanya mengambil berat tentang pemetaan data ke kelas Dalam keadaan biasa, kelas yang sepadan dengan setiap jadual akan diletakkan dalam a fail berasingan, dan Import kelas yang sepadan dalam models/__init__.py mengikut urutan, supaya apabila digunakan di tempat lain, mereka boleh diimport melalui database.models import xxxx Apabila menamakan kelas, adalah disyorkan untuk menambah nama projek itu. Sebagai contoh, saya mempunyai projek di sini dengan nama Cherry, maka semua kelas adalah CherryLeaks, CherryVulns, dll. Ia akan menjadi jelas sepintas lalu semasa kod reivew dan proses penulisan, mengetahui bahawa kelas ini mewakili data.
Adalah disyorkan untuk menambah pengurus berasingan untuk Model dan melaksanakan kaedah yang sepadan untuk mengelakkan operasi berulang.
Selain itu, terdapat beberapa cadangan, yang boleh dipilih mengikut situasi sebenar:
Tidak digalakkan menggunakan jenis seperti kunci asing
Tambahkan is_deleted pada setiap jadual, created_time, updated_time fields
Gunakan indeks dengan baik
2.3 View
Kebanyakan logik perniagaan harus diletakkan dalam bahagian View, yang sepatutnya menjadi teras. Ia juga disyorkan di sini untuk meletakkan semua Paparan dengan fungsi yang serupa dalam fail yang sama. Untuk memudahkan penyelenggaraan dan pembangunan masa hadapan, fail ini harus diletakkan dalam pakej bernama "pengawal" atau "pandangan". Sebagai contoh, pengendalian penghalaan berkaitan projek semuanya diletakkan dalam controller/project.py.
Utamakan menggunakan beberapa kelas View terbina dalam Django, seperti ListView, TemplateView, dsb. Jika anda perlu melaksanakan View sendiri, adalah disyorkan untuk menggunakan paparan berasaskan Kelas untuk merangkum kaedah permintaan yang berbeza ke dalam kaedah yang berbeza untuk keselesaan masa hadapan.
2.4 Templat
Untuk fail templat, cara terbaik ialah memotong halaman dan fungsi yang berbeza ke dalam fail templat yang berbeza, dan menyimpannya dalam folder di bawah nama Aplikasi, supaya dalam Semasa penyelenggaraan kemudian , anda boleh mencari fail templat yang sepadan dengan cepat daripada setiap Aplikasi.
Selain itu, adalah amat disyorkan untuk menggunakan fungsi warisan templat Semua halaman diwarisi daripada templat induk, dan pelbagai blok digunakan untuk mengembangkan halaman Nama blok setiap kedudukan ditakrifkan dalam induk templat. Menyediakan penggantian templat kanak-kanak. Adalah disyorkan untuk menggunakan nama popular dan pendek untuk setiap blok, seperti: bar sisi, skrip, pengepala, kandungan_utama, tajuk_halaman, perihalan_halaman, dsb.
Untuk fungsi biasa, seperti kotak ulasan, anda boleh mempertimbangkan untuk menyimpannya dalam fail berasingan dan memuatkannya melalui {% include 'filename.tpl.html' %} jika perlu. Perlu diingatkan bahawa jika anda perlu menggunakan lanjutan dan memasukkan arahan pada masa yang sama, anda mesti menggunakannya dalam blok, jika tidak ia akan menjadi tidak sah. Contoh berikut adalah tidak sah:
hendaklah digunakan seperti berikut:
BAHAGIAN 3. Gaya pengekodan
3.1 docstring
Fleksibiliti bahasa Python membuatkan kita kadangkala terlupa jenis parameter atau jenis pulangan kaedah tertentu semasa menulis kod. Dalam kes ini, kita perlu menggunakan docstring untuk menyediakan anotasi maklumat yang jelas untuk setiap kaedah supaya orang lain boleh membangunkan dan mengekalkannya. Rujuk pautan ini, jika anda menggunakan PyCharm, anda boleh menulis docstring pelengkapan automatik.
3.2 Berbilang nilai pulangan
Dalam banyak kes, kaedah kami perlu mengembalikan berbilang nilai kepada pemanggil, atau kembali ke bahagian hadapan melalui JSON Jika data dikembalikan secara rawak, ia akan membawa kepada kekacauan pembangunan, pada akhirnya kita tidak tahu apa kaedah yang dikembalikan.
Pendekatan yang lebih baik ialah bersetuju dengan format pemulangan Untuk kembali kepada pemanggil, cuma kembalikan tuple dan tulis makna setiap nilai dalam docstring. Selain memulangkan hasil, kadangkala kita perlu mengembalikan ralat untuk menunjukkan sama ada masalah atau pengecualian berlaku semasa pemprosesan data. Secara amnya, terdapat beberapa kaedah yang tersedia:
Lemparkan pengecualian melalui kenaikan
Kembali melalui berbilang nilai pulangan, seperti err, result = func()
Dikembalikan melalui atribut dalam kelas, seperti instance = Class(); err = instance.error_message
Ketiga-tiga kaedah ini mempunyai kebaikan dan keburukan, dan anda perlu memilih mengikut situasi sebenar projek , tidak kira mana yang digunakan Kedua-dua kaedah perlu disatukan sepanjang projek dan tidak boleh dicampur sebanyak mungkin
Untuk JSON yang dikembalikan ke bahagian hadapan, ia perlu sedikit lebih rumit, pada; sekurang-kurangnya 2~3 medan mesti dikembalikan:
kod ialah kod status yang dikembalikan oleh panggilan ini, yang boleh dipersetujui berdasarkan situasi sebenar. Mesej ialah mesej kod status yang mudah difahami yang boleh digunakan oleh pembangun untuk menyahpepijat dan memberikan pemberitahuan kepada pengguna. data ialah maklumat data sebenar yang dikembalikan Dalam banyak kes, medan ini mungkin tidak diperlukan Format medan khusus juga perlu dipersetujui semula berdasarkan situasi sebenar.
BAHAGIAN 4. Organisasi penghalaan
Penghalaan yang elegan dan ringkas memastikan kualiti projek dan mengurangkan kos penyelenggaraan.
4.1 Sistem penghalaan
Django mempunyai sistem penghalaan yang berkuasa dan algoritma penghalaan yang boleh memenuhi pelbagai keperluan dalam perniagaan, dan konfigurasi adalah fleksibel dan mudah Setiap fail konfigurasi penghalaan adalah URL PATH ke Fungsi /pemetaan kelas. Semuanya boleh disediakan sendiri, tanpa tertakluk kepada rangka kerja atau sekatan lain. Anda boleh merujuk kepada bahagian dokumentasi ini tentang strategi penghalaan permintaan Django.
Dalam mengkonfigurasi penghalaan, anda boleh menyertakan beberapa pembolehubah dalam kurungan sudut untuk penggunaan yang lebih mudah kemudian. Sesetengah "Penukar Laluan" boleh digunakan dalam kurungan sudut untuk menentukan jenis pembolehubah, seperti str, int, slug, uuid, laluan. Fail penghalaan URL lengkap kelihatan seperti berikut:
Selain itu, anda juga boleh menetapkan padanan biasa dalam laluan melalui re_path:
Kadangkala, anda mungkin mahu menambah laluan lalai untuk sesetengah URL Contohnya, apabila mengakses /blog/, halaman lalai akan dikembalikan dan apabila mengakses /blog/page
Dalam contoh ini, semua laluan yang meminta komuniti/* diserahkan kepada aggregator.urls untuk penghuraian cara, Semua permintaan kenalan/* juga diserahkan kepada modul penghalaan lain untuk diproses jika tidak terdapat begitu banyak Aplikasi dalam projek anda dan anda masih mahu menguruskan penghalaan melalui termasuk, anda boleh menggunakan kaedah berikut:
4.3 Ruang nama
Secara amnya, setiap projek Django kami terdiri daripada berbilang Apl Jika semua laluan Apl diletakkan dalam URLCONF_ROOT , lama kelamaan fail ini akan menjadi lebih banyak dan lebih sukar untuk dikekalkan dan sangat mengelirukan. Laluan dengan nama yang sama boleh digunakan dalam apl berbeza, menyebabkan konflik. Untuk menyelesaikan masalah ini, kami boleh menggunakan "pemasukan laluan" dan "ruang nama" untuk menyelesaikannya Terutama jika anda menyelenggara Apl yang boleh digunakan semula, untuk memastikan keunikan laluan, ruang nama amat penting.
Biasanya terdapat dua jenis ruang nama: Ruang nama aplikasi dan ruang nama Instance Contohnya, admin:index mewakili laluan indeks ruang nama pentadbir. Untuk maklumat lanjut tentang bahagian ini, sila rujuk: Dokumen Rasmi
Ruang Nama Aplikasi lebih mudah difahami Ia merujuk kepada ruang nama pada peringkat aplikasi Ia biasanya disusun dengan cara berikut:
Ruang Nama Contoh merujuk kepada contoh. . Ruang nama Tahap sering digunakan apabila Apl dibuat beberapa kali Untuk membezakan setiap kejadian, Ruang Nama Instance perlu diperkenalkan. Mari kita lihat contoh dalam dokumentasi rasmi:
Anda boleh melihat bahawa dua laluan tinjauan pendapat pengarang dan tinjauan penerbit sebenarnya mengandungi laluan yang sama, tetapi nyatakan yang berbeza Ruang nama, ini ialah ruang nama peringkat Instance, iaitu, ruang nama objek yang sedang diakses. Identiti pengguna yang berbeza akan mendapat ruang nama yang berbeza apabila mengakses URL yang berbeza Contohnya, pelawat dan pentadbir kedua-duanya mengakses halaman yang ditunjukkan oleh tinjauan pendapat: indeks, tetapi disebabkan ruang nama yang berbeza, mereka akan mendapat hasil yang berbeza.
Atas ialah kandungan terperinci Apakah kaedah pembangunan Django. 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



Langkah-langkah untuk menyemak versi Django: 1. Buka terminal atau tetingkap command prompt 2. Pastikan Django tidak dipasang, anda boleh menggunakan alat pengurusan pakej untuk memasangnya dan masukkan perintah pip install django; Selepas pemasangan selesai, anda boleh menggunakan python -m django --version untuk menyemak versi Django.

Django dan Flask adalah kedua-duanya peneraju dalam rangka kerja Web Python, dan kedua-duanya mempunyai kelebihan dan senario yang boleh digunakan. Artikel ini akan menjalankan analisis perbandingan kedua-dua rangka kerja ini dan memberikan contoh kod khusus. Pengenalan Pembangunan Django ialah rangka kerja Web berciri penuh, tujuan utamanya adalah untuk membangunkan aplikasi Web yang kompleks dengan cepat. Django menyediakan banyak fungsi terbina dalam, seperti ORM (Pemetaan Hubungan Objek), borang, pengesahan, bahagian belakang pengurusan, dsb. Ciri-ciri ini membolehkan Django mengendalikan besar

Django ialah rangka kerja pembangunan lengkap yang merangkumi semua aspek kitaran hayat pembangunan web. Pada masa ini, rangka kerja ini merupakan salah satu rangka kerja web yang paling popular di seluruh dunia. Jika anda bercadang untuk menggunakan Django untuk membina aplikasi web anda sendiri, maka anda perlu memahami kelebihan dan kekurangan rangka kerja Django. Berikut ialah semua yang anda perlu ketahui, termasuk contoh kod khusus. Kelebihan Django: 1. Pembangunan pesat-Djang boleh membangunkan aplikasi web dengan cepat. Ia menyediakan perpustakaan yang kaya dan dalaman

Cara menyemak versi django: 1. Untuk menyemak melalui baris arahan, masukkan arahan "python -m django --version" dalam terminal atau tetingkap baris arahan 2. Untuk menyemak dalam persekitaran interaktif Python, masukkan "import django print(django. get_version())" code; 3. Semak fail tetapan projek Django dan cari senarai bernama INSTALLED_APPS, yang mengandungi maklumat aplikasi yang dipasang.

Perbezaannya ialah: 1. Siri Django 1.x: Ini ialah versi awal Django, termasuk versi 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 dan 1.9. Versi ini menyediakan fungsi pembangunan web asas; 2. Siri Django 2.x: Ini adalah versi jangka pertengahan Django, termasuk versi 2.0, 2.1, 2.2 dan lain-lain siri Django Termasuk versi 3.0, 3, dsb.

Cara menaik taraf versi Django: langkah dan pertimbangan, contoh kod khusus diperlukan Pengenalan: Django ialah rangka kerja Web Python yang berkuasa yang sentiasa dikemas kini dan dinaik taraf untuk memberikan prestasi yang lebih baik dan lebih banyak ciri. Walau bagaimanapun, bagi pembangun yang menggunakan versi lama Django, menaik taraf Django mungkin menghadapi beberapa cabaran. Artikel ini akan memperkenalkan langkah dan langkah berjaga-jaga tentang cara untuk meningkatkan versi Django dan memberikan contoh kod khusus. 1. Sandarkan fail projek sebelum menaik taraf Djan

Django ialah bahagian belakang. Butiran: Walaupun Django terutamanya rangka kerja bahagian belakang, ia berkait rapat dengan pembangunan bahagian hadapan. Melalui ciri seperti enjin templat Django, pengurusan fail statik dan API RESTful, pembangun bahagian hadapan boleh bekerjasama dengan pembangun bahagian belakang untuk membina aplikasi web yang berkuasa dan boleh skala.

Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Pengenalan: Dalam bidang pembangunan aplikasi web, terdapat banyak rangka kerja Python yang sangat baik untuk dipilih. Artikel ini akan menumpukan pada tiga rangka kerja yang paling popular, Django, Flask dan FastAPI. Kami akan menilai ciri mereka dan membincangkan rangka kerja yang terbaik untuk digunakan oleh pemula. Pada masa yang sama, kami juga akan menyediakan beberapa contoh kod khusus untuk membantu pemula lebih memahami rangka kerja ini. 1. Django: Django
