Django yeni nesil tanınmış web çatıları arasında yer almaktadır, fakat bu terim tam olarak neyi ifade etmektedir?
Bu sorunun cevabı şöyle verilebilir, Python ile geliştirilmiş ve herhangi bir web çatısı kullanmayan bir web uygulaması düşünelim. Bu giriş bölümünde, temel bir görevi herhangi kısayol olmadan halletmeyi ele alacağız, umarız kısayolların ne kadar kullanışlu olduğunu kavrarsınız. (Ayrıca işleri kısayollar olmadan halletmeyi bilmek de değerlidir, çünkü kısayollar her zaman kullanılabilir olmayabilir. Ve en önemlisi bu şeylerin neden bu yoldan yapıldığını bilmek sizi daha iyi bir Web geliştiricisi yapacaktır.)
Bir çatı kullanmadan, Python ile sıfırdan bir Web uygulaması yapmanın en kolay yolu 1998 den süregelen CGI standartını kullanmaktır. İşte size nasıl çalıştığının yüksek-seviye açıklaması: Html çıktısı veren Python scriptinizi hazırlayın ve ".cgi" uzantısı ile kaydedip Web sunucunuza gönderin ve Web tarayıcınızdan bu scripte ulaşın. Bu kadar.
Bir Python CGI scripti örneği vermek gerekirse, aşağıdaki script veritabanından en son yayınlanmış son 10 kitabı listelemektedir. Sözdizimi hakkında merak etmeyin, sadece yaptığı basit şeylere göz gezdirin:
#!/usr/bin/env python import MySQLdb print "Content-Type: text/html\n" print "<html><head><title>Kitaplar</title></head>" print "<body>" print "<h1>Kitaplar</h1>" print "<ul>" connection = MySQLdb.connect(user='ben', passwd='izinver', db='veritabanim') cursor = connection.cursor() cursor.execute("SELECT isim FROM kitaplar ORDER BY yayim_tarihi DESC LIMIT 10") for row in cursor.fetchall(): print "<li>%s</li>" % row[0] print "</ul>" print "</body></html>"
İlk olarak CGI gereksinimlerini karşılamak için, "Content-Type" satırı ardından boş satır yazdırılıyor, ardından bir kaç html kodu yazdırılıyor ve veritabanına bağlanıp sorgu çalıştırıldıktan sonra 10 kitap adı alınıyor. Bu kitaplar üzerinde çalışan döngü ile HTML kodlarından liste yaratılıyor. Son olarak HTML kodları kapatılıyor ve veritabanı bağlantısı kapatılıyor.
Bunun giibi birer sayfayı sıfırdan yapmak o kadar da kötü değildir. Bu kod kolayca okunabilir, hatta yeni geliştiriciler bile 16 satır Python kodunu herkes gibi başından sonuna kadar anlayabilir. Öğrenilecek bir şey yoktur, okunacak başka bir kod yoktur. Ayrıca kodun çalıştırılması da kolaydır, sadece ".cgi" uznatısı ile bir dosyaya kaydedilir ve Web sunucusuna upload edilir, ardından sayfa ziyaret edilerek çalıştırılır.
Bu kolaylığa rağmen bir dizi problem ve sinir bozucu durumlar vardır. Kendinize şu soruları sorun:
- Uygulamanızın birden fazla bölümü veritabanı bağlantısına ihtiyaç duyuyorsa ne olacak? Elbette veritabanı bağlantı fonksiyonu her bir script için sürekli tekrarlanmamalı. En yararlı çözüm paylaşımlı bir fonksiyonda bunu belirlemek olur.
- Geliştirici "Content-Type" satırını yazmayı ve veritabanı bağlantısını kapatmayı hatırlamalı mı? Bu küçük şeyler programcının verimliliğini düşürüp hatalar yapmasına olanak sağlamaktadır. Bu kurma-yıkma ile alakalı işlemler ortak bir altyapı tarafından halledilmelidir.
- Eğer kod birden fazla ortamda çalışacaksa ve her veritabanı ve şifre ayrı ayrıysa ne olacak? Bu noktada birkaç ortama-özel ayarlar olmazsa olmaz hale gelmektedir.
- Python kod deneyimi bulunmayan bir Web Tasarımcısı bu sayfayı tekrar tasarlamak istersen ne olacak? Hatalı bir karakter tüm uygulamanın çakılmasına yol açacaktır. Sayfanın mantığı, kitap başlıklarının veritabanından alınması ve HTML ile bölünmş sayfada yazdırılması, yani tasarımcı ana özelliklere dokunmadan sayfa tasarımını değiştirebilmelidir.
Bu sorunlar Web çatısının çözmeye niyetlendiği sorunlardır. Bir Web çatısı uygulamanıza programlama altyapısı sunar, siz sadece tekeri tekrar icat etmeden, temiz yazmaya ve kodunuza bakım yapmaya odaklanırsınız. Kısaca, Django'nun yaptığı budur.
Hiç yorum yok:
Yorum Gönder