- Front end developers (CSS/HTML developers) start having difficulties when editing html pages when something does not appear the way it should be appearing. They have to learn the templating engine your framework uses.
- Sometimes HTML/CSS developers break the logic in html pages by replacing something by mistake.
- Backend developers are not the best at editing both HTML and CSS (well, in most cases, at least!). I have had this happen to me quite a few times too. I receive the HTML from a designer team, after that I put it into the templating engine...and it has a radically changed appearance. When I compare the way it looks on the server and the original things are just looking completely different.
- If HTML/CSS developers need to play or change something on the system, what they need is a working copy of the whole system. You need to give them ssh access to the staging server or something similar.
22 Ekim 2014 Çarşamba
Enlivepy A Different Approach to Html Templating in Python
7 Ekim 2014 Salı
Django Authentication Workflow
30 Nisan 2009 Perşembe
Using GWT with Django
I followed the tutorial in GWT site and had a running application (StockWather). To complete that tutorial you probbaly would need to complete the StockWatcher firstly and then go on from here or you can just pull the code i wrote for that purpose from here[1] and just inspect it.
For communication of both ends i used XML,if you're not a fan of it you can use JSON also. I didnt use JSON because of the JSNI usage in Java code. I dont like hybrid codes like that...
- First create the server side code in Django :LINK
- You need to build a GET request in you JAVA code so u do that from here: LINK
- Parse the incoming XML string from Django and convert it to JAVA objects: LINK
- Write unittests for your client side code (GWT) because if you have errors u will get some strange JS errors which are not so decsriptive. : LINK
- Put GWT application in your media and put the generated HTML file in your templates directory.
Well that is all,it took some time to glue both of them (Django and GWT) but we have here a happy end :) GWT is cool but it has some little weird stuffs i dont understand yet. One of them is Designing the applications.I should find
an easy way to explain it to my designer :)
[1]: GWT-Django app
17 Mart 2009 Salı
Ajaxian Even Calendar on Django
Features are:
- Showing every month with events
- Small and big(excel like) versions
- Adding same event for a couple of days
- Adding lots of events on same day
- Facebox display of events
- Dual language arabic/english
Demo small : Link (on the left)
Demo Big : Link
Source : Link
Static directory : Link
For instalation look at README file in the source.
Have FUN and thanks to ADK for his design help ...
20 Ocak 2009 Salı
Django Admin ManyToMAny Behaviour
class SchoolSection(models.Model):
#snip
class GalleryItem(models.Model):
school_section = models.ManyToManyField(SchoolSection)
#snip
A pretty easy structure , the problem occurred when i connected the post_save signal to a method which was using the models above. When a new GalleryItem was saved i wanted to pre-populate some xml files according to new commers. Here is the simple code that was pulling the gallery items :
sc=SchoolSection.objects.all()
gi = GalleryItem.objects.filter(school_section = sc[0])
When i save an object i was not able to see the new added in query above. When i saved the object second time (edit->save) the new entry appeared. In a moment when i was going go crazy someone from #django channel told me that Django doesnt save the m2m relationships immediately due to performance issues. Therefore the solution was to override a method in admin part , here is the solution :
class GalleryItemAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
super(GalleryItemAdmin, self).save_model(request, obj, form, change)
form.save_m2m()
obj.save()
That is all, hope to help someone who has the same problem :)
29 Ekim 2008 Çarşamba
A new Django Site Added to public
To conclude , do not write hardcoded programs because someday they will be seen by other people believe me :)
Note : and also thanks to adk for his help with those designer and css stuff
18 Kasım 2007 Pazar
Django veya Zope Hangisi ?
Bu kısa yazımda yukarıdaki başlıkta yer alan Web geliştirme ortamları veya ecnebicesi “frameworkler” hakkında bahsedeceğim. Birini kötüleyip diğerini yüceltmek gibi bir yola başvurmak yerine hangisi nerede daha uygun şeklinde bir yol izlemeye çalışılacaktır.
Evet, Python ile Web geliştirme dünyasına dalmayı düşünüyorsanız bu yazı oldukça yararlı olacaktır diye düşünüyorum. Fazla boş lafa dalmadan başlayalım :
Öğrenme süreci :
Öğrenme süreci bakımından iki framework'u karşılaştıracak olursak. Zope ile aşina olmam benim 2 veya 3 ayımı aldı diyebilirim. Bu sürenin neden bu kadar çok sürdüğünü aşağıda yer alan diğer karşılaştırma maddelerinden anlayabilirsiniz. Django ile ilk uygulamamı onların sitesinde yer alan “hızlı tur” denilen belgeyi okuduktan sonra yazdım. Ve ilk haftanın sonunda şu andan üzerinde çalışmakta olduğum iptables Web arayüzü uygulamamı Django'ya port etmeye başlamış oldum. Django ile öğrenme sürecinin bu kadar kısa olması beni çok şaşırtmıştı ama bunun bir nedeni de daha önce Zope gibi bir framework ile cebelleşmemden kaynaklanıyor olabilir de :)...
Versiyon Karmaşası :
Bunun da karşılaştırması olur mu demeyin. Eğer Zope ile uğraşmaya başladıysanız zaten ne demek istediğimi anlıyorsunuzdur. Şöyle ki Zope ile başlayayım dediniz ve zope.org adresine gittiniz. Orada bulunan Zope 2 belgelerinden birini okumaya başladınız. Oradaki howto'yu okuduktan sonra bir de baktınız Zope 3 diye bir şey varmış. O da ne ki herhalde Zope2'nin bir devamıdır diyeceksiniz. Hayır oradaki amcalar yepyeni bir framework geliştirmeye başlamışlar. Yani Zope 2'nin Zope 3 versiyonuyla alakası yokmuş. Evet ben ilk önce Zope 2 ile alakalı birsürü belge okuduktan sonra bir de Zope 3 için o kadarını okumuştum :). Ama başlayacaksanız kesinlikle Zope 3 ile başlayın (Allah yardımcınız olsun :) ) çünkü, Zope 2 birkaç sene içinde belki de ortadan kaybolacaktır. Peki Django'da işler nasıl? evet onlarda o şekilde bir karmaşa yok. Ama ilginç olan bir nokta yeni sürümler çıkarmak yerine her zaman svn'in son versiyonlarını tavsiye etmeleridir. Evet versiyon ile alakalı bu kadar yeter.
Belge ve Kaynaklar:
Yeni bir teknolojiyi öğrenirken bu konu hakkındaki dokümanlar oldukça önemli bir yere sahiptir. Zope ile başlarsak, zope.org adresinde bulunan dokümanların çoğu oldukça eski. Bu yüzden de oradaki örnekleri uygulamaya çalışırken çoğu “import” ifadesinin hata verdiğini veya kullanılan methodların orada olmadığını göreceksiniz. Zope 3 de Doküman olarak kendini güncel tutmaya baksa da nereden başlayacağınızı kestirmeniz oldukça güçtür. Dökümanlarını wiki tarzında tutmaktalar ve adresi şurada : http://wiki.zope.org/zope3/Zope3Wiki. Fakat oraya girdiğinizde kendiniz de göreceksiniz ki aradığınızı bulmak oldukça güçtür. Django'da işler nasıl ? Evet http://www.djangoproject.com/documentation/ adresine giriyorsunuz ve yukarıdan aşağı doğru okumaya başlıyorsunuz. Sanırım daha fazla açıklamaya gerek yok.
Destek :
Yine bir teknojiyi öğrenirken, ki bu bir açık kaynak teknolojisi ise destek oldukça önemlidir. Destek derken paralı destekten bahsetmiyoruz, o işle uğraşan gönüllülerden bahsediyoruz. Zope ile başlarsak freenode'daki #zope kanalına girip zamanınızı kaybetmeyin derim . Bir soru sorduğunuzda cevabını ya birkaç saat sonra ya da hiç alamayacaksınız. Bunun yanında mail listelerini deneyebilirsiniz fakat , kolay sorular sormayın :) . Oradaki abiler oldukça bu işi ilerlettikleri için çok kolay sorulara zaman ayıramıyorlar. Django'da ise #django kanalına girdiğiniz zaman adamlar size cevap vermek için sıraya giriyor sanki. Kanalda bulunan kişi sayısı 300 altına genelde düşmüyor. Mail listesi de oldukça aktif günde 50'nin üzerinde mail siliyorum. Ayrıca evet salakça ve kolay sorular sorabilirsiniz :)
Bayağı yazılacak şey varmış aslında. O zaman bu sefer burada bırakıp bu yazıyı ikiye böleyim ben :) İkinci bölümde de iki platformdaki yazılım geliştirme aşamaları ve altyapıları hakkında biraz dedikodu yaparım. Bol Pythonlu günler....
Kaynakça:
Django : http://www.djangoproject.com/
Zope: http://www.zope.org/
17 Ekim 2007 Çarşamba
Static dosyalar -Django
Öncelikle settings.py içinde :
MEDIA_ROOT = '/home/medianin/oldugu/yer'
MEDIA_URL = '/yer/'
Daha sonra urls.py içine de :
urlpatterns += patterns ('',
(r'media/(?P
)
Başında '^' işaretinin olmadığına dikkat etmek gerekir.
En son olarak da template içeresinden çağırıken :
şeklinde çağrılar gerçekleştirilir.
Bu kadar bunu unutma !