İçeriğe geç

Django Extensions Shell Plus

Giriş.

Herkese merhabalar. Django ile çalışırken bir çok defa interaktif shell açarak bir şeyleri kontrol etmişizdir. Yazılan orm sorgusunun beklenen çıktıyı verip vermemesi, basit fonksiyon testleri vs vs.

python manage.py shell

Yukarıdaki Django komutu normal bir Python shellinden farklı olarak, sessionu Django settings modülüne göre konfigüre edecek ve sessionu oluşturacaktır.

Fakat bu hali ile en baz yeteneklere sahiptir. Çalışılacak olan modelleri, veritabanı fonksiyonlarını, veya çok kullanılan tüm yardımcı metodları her çalışmada tekrar tekrar içeriye aktarmamız gerekmekte.

django-extensions ve shell_plus.

django-extensions paketi Django uygulamalarınıza bir çok yetenek sağlayan yardımcı bir paket. İçerisinde lokal geliştirme sunucunuzu HTTPS üzerinden sunmadan, model grafiklerini çıkartmaya veya bugünün konusu gibi akılcı bir shell deneyimi oluşturmaya kadar, bir çok araç barındırıyor.

Kurulum için

pip install django-extensions

paketi yükledikten sonra django-extensions’ı herhangi bir django uygulaması gibi kayıt etmemiz gerekmekte. Sadece geliştirme ortamında kullanacaksanız development settings dosyasına veya aşağıdaki gibi settings dosyanıza doğrudan ekleyebilirsiniz.

if DEBUG:
    INSTALLED_APPS.append('django_extensions')
python manage.py shell_plus

komutunu koşturduğunuzda aşağıdaki gibi bir görünüm elde edeceksiniz. En çok etkileşime geçilen yardımcı metodlar, değişkenler ve Django uygulamanızın settings dosyasında tanımlı olan tüm modeller içeriye aktarılmış olacak.

shell_plus_basicKullanışlı değil mi? Fakat deneyim hala geliştirilebilir.


shell_plus eğer sistemde herhangi 3rd party interpreter yoksa (ipython, bpython vs) varsayılan olarak python interpreterini kullanır. Bu interpreter auto-complete, auto indentation veya editor modu gibi özelliklerden yoksundur.

Yukarıda sayılanlar veya daha farklı özellik setini shell’e kazandırma adına herhangi bir interpreter kurulabilir. Ben ipython’u kullanışlı buluyorum ve öneriyorum.

pip install ipython

Yükleme işlemi tamamlandıktan sonra django shell’ini tekrar çalıştıracak olursak shell_plus yüklü interpreter listesine bakacak ve ipython ile shelli açacaktır. Ve bir çok yetenek ile birlikte 🙂

ipython shell gif


Sonuç.

django-extensions gerçekten fazlasıyla yardımcı bir paket. Geliştirme ortamınızda işlerinizi hızlandıracağına kesinlikle eminim. Bunun yanında tabi ki birden fazla interpreterin yüklü olduğu sistemlerde seçim yapabilmek de mümkün. Örneğin;

python manage.py shell_plus --bpython
python manage.py shell_plus --ipython
python manage.py shell_plus --plain

Daha fazla bilgi için dökümantasyon linki burada. Ipython’da ha keza çok güçlü bir interpreter onunla ilgili bilgi de almak isterseniz onun linki de burada.

Görüşmek üzere! Happy coding 🙂

 

Tarih:BlogTips

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Göster
Gizle