Apakah ada konvensi penamaan untuk aplikasi Django

115

Adakah konvensi penamaan yang disukai untuk membuat aplikasi Django yang terdiri dari lebih dari satu kata? Misalnya, manakah dari berikut ini yang lebih disukai?

  1. my_django_app
  2. my-django-app Pembaruan: Tidak diizinkan secara sintaksis
  3. mydjangoapp Solusi yang disarankan

Meskipun semuanya mungkin merupakan opsi 1 dan 3 yang diizinkan secara sintaksis, apakah ada preferensi? Melihat cara Django membuat nama tabel dengan menggabungkan nama aplikasi dan nama model dengan garis bawah, saya bersandar pada opsi # 1.

Pikiran?

Matthew Rankin
sumber

Jawaban:

108

Mereka harus merupakan nama paket yang valid. Itu mengesampingkan 2 ("import my-django-app" akan menjadi kesalahan sintaks). PEP 8 mengatakan:

Modul harus memiliki nama yang pendek, semuanya huruf kecil. Garis bawah dapat digunakan dalam nama modul jika itu meningkatkan keterbacaan. Paket Python juga harus memiliki nama yang pendek dan semuanya huruf kecil, meskipun penggunaan garis bawah tidak disarankan.

Jadi, 1 dan 3 keduanya valid, tetapi 3 akan menjadi pendekatan yang direkomendasikan.

thraxil.dll
sumber
1
Entri blog yang bermanfaat tentang masalah ini, hanya untuk memperluas: streamhacker.com/2011/01/03/django-application-conventions
Akhorus
7
Hai @ surfer19. Dua sendok Django berisi banyak sekali praktik yang baik. Mereka memilih singular: blog. Ini adalah pilihan yang sama saat Anda membuat Model: Blog lebih disukai di atas Blog.
Wim Feijen
2
Secara umum, saya akan merekomendasikan menggunakan garis bawah, karena mereka meningkatkan keterbacaan dan mereka biasa digunakan, misalnya saya banyak menggunakan django_extensions dan django_debug_toolbar.
Wim Feijen
14
@WimFeijen, tampaknya Dua sendok Django, setidaknya di sini , merekomendasikan penggunaan 'versi jamak dari model utama aplikasi' untuk nama aplikasi, dengan pengecualian seperti aplikasi bernama blog, 'pengecualian yang baik'.
Caco
Saya berdiri dikoreksi. Terima kasih @Caco telah melihat ini dan mendidik saya.
Wim Feijen
11

beberapa contoh bagus

  • graphene_django
  • pengguna
  • pesanan
  • oauth2_provider
  • rest_framework
  • jajak pendapat

dalam istilah sederhana, app_nameharus memiliki nama yang pendek, semuanya menggunakan huruf kecil. Garis bawah dapat digunakan dalam nama modul jika itu meningkatkan keterbacaan. juga harus memiliki nama pendek dan dapat berupa nama jamak dan tunggal

Jamil Noyda
sumber
7

Nama direktori aplikasi harus merupakan nama paket Python yang valid. Ini berarti bahwa opsi 2 sama sekali tidak dapat diterima sebagai nama paket, meskipun masih dapat digunakan untuk tujuan lain, seperti dokumentasi. Pada akhirnya itu tergantung pada gaya pribadi. Jika Anda lebih suka opsi 3, gunakanlah.

Ignacio Vazquez-Abrams
sumber
0

Pilihan saya untuk 1 dan 3, tetapi Anda dapat memeriksa beberapa aplikasi populer: http://www.django-cms.org/ http://geodjango.org/

Menjaga
sumber
2
Lebih banyak lagi aplikasi ada di sini: djangopackages.org . Ingatlah bahwa paket sering kali dinamai menggunakan minus: django-debug-toolbar, sementara Anda harus menggunakan "django_debug_toolbar" dalam pengaturan INSTALLED_APPS Anda.
Wim Feijen