Django uygulamaları için bir adlandırma kuralı var mı


116

Birden fazla kelimeden oluşan bir Django uygulaması oluşturmak için tercih edilen bir adlandırma kuralı var mı? Örneğin aşağıdakilerden hangisi tercih edilir?

  1. my_django_app
  2. my-django-app Güncelleme: Sözdizimsel olarak izin verilmez
  3. mydjangoapp Önerilen çözüm

İken hepsi olabilir seçenekleri 1 ve 3 olan sözdizimsel izin bir tercih var mı? Django'nun uygulama adını ve model adını bir alt çizgiyle birleştirerek tablo adlarını yaratma şekline baktığımda, 1. seçeneğe yaslanıyorum.

Düşünceler?

Yanıtlar:


108

Geçerli paket adları olmalıdır. Bu 2'yi dışlar ("django-uygulamamı içe aktar" bir sözdizimi hatası olur). PEP 8 diyor ki:

Modüller kısa, tamamı küçük harfli adlara sahip olmalıdır. Okunabilirliği artırırsa, modül adında alt çizgiler kullanılabilir. Python paketleri kısa, tamamı küçük harfli adlara sahip olmalıdır, ancak alt çizgi kullanımı tavsiye edilmez.

Dolayısıyla, 1 ve 3'ün ikisi de geçerlidir, ancak 3 önerilen yaklaşım olacaktır.


1
Bu sorunla ilgili yararlı bir blog yazısı, sadece genişletmek için: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Merhaba @ surfer190. İki kepçe Django bir ton iyi uygulama içerir. Tekil olanı seçerler: blog. Model oluştururken de aynı seçimdir: Blog, Bloglardan daha çok tercih edilir.
Wim Feijen

2
Genel olarak, alt çizgi kullanmanızı tavsiye ederim çünkü okunabilirliği geliştirirler ve yaygın olarak kullanılırlar, örneğin django_extensions ve django_debug_toolbar'ı çok kullanıyorum.
Wim Feijen

14
@WimFeijen, en azından burada , iki kepçe Django'nun, uygulama adları için 'uygulamanın ana modelinin çoğul versiyonunun' kullanılmasını önerdiği görülüyor, blog adlı bir uygulama gibi istisnalar, 'iyi bir istisna'.
Caco

Düzeltilmiş durumdayım. Bu konuyu incelediğiniz ve beni eğittiğiniz için @ Caco'ya teşekkürler.
Wim Feijen

11

bazı iyi örnekler

  • graphene_django
  • kullanıcılar
  • emirler
  • oauth2_provider
  • rest_framework
  • anketler

basit bir ifadeyle, app_namekısa, tümü küçük harfli adlara sahip olmalıdır. Okunabilirliği artırırsa, modül adında alt çizgiler kullanılabilir. ayrıca kısa bir adı olmalı ve çoğul ve tekil bir isim olabilir


7

Uygulama dizini adları geçerli bir Python paketi adı olmalıdır. Bu, 2. seçeneğin paket adı olarak tamamen kabul edilemez olduğu anlamına gelir, ancak yine de dokümantasyon gibi başka amaçlar için kullanılabilir. Sonunda kişisel stile iniyor. 3. seçeneği tercih ederseniz, onu kullanın.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.