Django ile teknik servis formu (Python 3)
Django 1.9 teknik servis formu dokümanının Python 3 sürümü.
Bu depo, Django 1.9 ile teknik servis formu sitesi yapmayı anlatan Türkçe dokümanın Python 3 sürümünü içeriyor. Python 2 ile yazdığım ilk sürümü 2016 yılının Ocak ayında djangoturkiye.com için hazırlamıştım. Kısa süre sonra Django'ya doğrudan Python 3 ile başlamak isteyenler için kodu Python 3'e taşıdım. Bu sürümü Korhan Yüzbaş ile birlikte hazırladık ve MIT lisansıyla paylaştık.
Amaç
2016'nın başında Python 2 hâlâ yaygın olarak kullanılıyordu, ancak yeni başlayanların Python 3 ile başlaması gerektiği açıktı. Dokümanı okuyup kodu Python 3 ile çalıştırmaya çalışan biri print ifadeleri, Unicode metinler ve model tanımlarındaki farklar yüzünden ilk adımda hata alabilirdi. Bu depoyu, aynı örnek uygulamanın Python 3'te doğrudan çalışan bir karşılığını sunmak için açtım. Konular ve uygulamanın yapısı Python 2 sürümüyle aynı kaldı; değişen, kodun yazılış biçimi oldu.
Örnek uygulama
Uygulama, Python 2 sürümündeki gibi servisformu adlı tek bir Django uygulamasından oluşuyor. Müşteriler, teknisyenler, aksesuarlar ve işlem durumları ayrı tablolarda tutuluyor. Her servis formuna bir müşteri ve teslim alan teknisyen bağlanıyor, formun altına en fazla beş ürün ekleniyor. Yönetim panelinden müşteri aranabiliyor, kayıtlar toplu güncellenebiliyor ve her form için yazdırılabilir bir servis fişi açılabiliyor. Ana sayfada müşteri, form numarasıyla cihazının durumunu AJAX ile sorgulayabiliyor. Servis formları XML olarak da dışa aktarılabiliyor.
Python 3 için yapılan değişiklikler
İlk dönüşümü ben yaptım. Ardından Korhan Yüzbaş kodu gözden geçirip Python 3 ve Django'nun önerdiği yazım biçimine daha uygun hâle getirdi.
printifadeleri Python 3'tekiprint()fonksiyonuna çevrildi.- Modellerdeki
__unicode__tanımları__str__olarak değiştirildi. - Metinlerin önündeki
uönekleri ve dosya başlarındaki kodlama satırları, Python 3'te gereksiz olduğu için kaldırıldı. - Müşteri kodu ve form numarası için Python'un
randomvestringmodülleri yerine Django'nunget_random_stringfonksiyonu kullanıldı. Bu alanlar ayrıca benzersiz (unique) olarak işaretlendi. BooleanFieldalanlarının varsayılan değeri1yerineTrueolarak yazıldı.- Uygulama ayarı
INSTALLED_APPSiçindeservisformu.apps.ServisformuConfigolarak tanımlandığı içindefault_app_configsatırı kaldırıldı. - Bir süre PostgreSQL denendi, ancak dokümanı takip edenlerin ek kurulum yapmadan başlayabilmesi için SQLite'a geri dönüldü.
Kimler için uygun
Django'ya Python 3 ile başlamak isteyenler bu depodaki kodu doğrudan çalıştırabilir. Konuların ayrıntılı anlatımı Python 2 deposundaki PDF dokümanında duruyor. İki depo yan yana okunduğunda, Python 2'den Python 3'e geçerken bir Django projesinde nelerin değiştiği de somut olarak görülebiliyor.
- Kategori
- Eğitim ve topluluk
- Yıl
- 2016
Teknolojiler
- Python
- Django
- Education
Bağlantılar
- GitHub https://github.com/muslu/django-teknikservis-py3