Yazılar nasıl etiketlenir?

Django ile yazdığım bloguma otomatik etiketleme sistemi eklemeye çalışıyorum. Etiketleme sistemi arama ve alakalı yazıları tespit etme özellikleri için gerekli. Etiketleme olayını otomatiğe bağlamamın sebebi ise daha hızlı bir şekilde yazı girebilecek olmam.

Uygulayacağım yöntem sanırım şöyle birşey olacak; kendimi sitedeki içeriğe uygun büyük bir etiket bulutu oluşturacağım. Kelimleri eklentiye gireceğim ve daha sonra bir yazı girdiğimde eklenti yazılarda o kelimeleri arayacak, ve eğer varsa, o yazıyı o etiketle etiketleyecek. Daha sonra örneğin alakalı yazıları göstermek istediğimde, benzer etiketlere sahip yazıları, çok benzer etikete sahip olandan az olana doğru sıralayacak. Bu da böyle bir blog yazısıdır.

Django geliştirmenin kolay yolu?

Bir süredir Django ile uğraşıyordum ve Django ile yazdığım blog sayfamı bitirmek üzereyim fakat bazı sorunlar yaşıyorum:

  • Localhost’da çalıştıktan sonra dosyalarımı upload etmeden önce bir sürü değişiklik yapmam gerekiyor(url ayarları, veritabanı bağlantıları vs). Bunu kolaylaştırmak için LOCAL_DEVELOPMENT adlı bir değişken tanımladım, ve upload etmeden önce buna False atıyorum. Daha sonra örneğin veritabanı bağlantı sayfamda if LOCAL_DEVELOPMENT: #ayarlar şeklinde değişiklikler yapıyorum. Yine de sıkıcı bir işlem(gün içerisinde 10 kere yaptığım düşünülürse).
  • Localhost’da tamam da, internette bir türlü resim, css vb. dosyaların bağlantılarını sağlayamadım. Ayarlara bakıldığında herşey normal gözüküyor..
  • Değişiklikleri upload ettiğimde geçerli olmaları için bazen 10-15 dakika beklemem gerekiyor. -Sanırım- sunucum py dosyalarını ön bellek gibi birşeye(herneyse artık) yüklüyor, değişiklikleri de belirli aralıklarla kontrol ediyor ve değişiklik varsa yenisini okuyor. Beni çok yavaşlatan bir işlem.
  • Admin panelinden birşey eklerken veri tabanına formlarda olmayan bir değeri nasıl girebilirim?

Bunların dışında bir de etiket sistemi eklemek istiyorum fakat nasıl bir yöntem izlemeliyim karar veremedim. Yani örneğin tüm yazıyı kelime kelime tarayıp, bağlaçları vs. eleyip, geriye kalan kelimeleri etiket olarak mı kabul etmeliyim, yoksa büyük bir etiket bulutu oluşturup, yazılarda o kelimeleri mi aramalıyım(bu daha mantıklı geliyor)?

2 hafta sonra hazırlık biteceğinden ve benim ilk seneki ingilizce derslerinden muafiyet alma ihtimalim yüksek olduğundan ara sıra ders çalışıyorum, pek zaman ayıramıyorum, fakat en kötü ihtimalle 9 Temmuz’a kadar bitirmem gerekiyor bu sayfayı, yoksa hiçbir zaman bitiremeyebilirim..

Gereksiz Django proje oluşturucu

Hazırlık okumak sıkıcı iş, mid-term öncesi derslerden sıkılmış bir halde bu kodu yazdım, bu gereksiz kod Django kurulu bilgisayarınızda proje oluşturmaya yarar:

import os, re, commands

def start():
    if os.name != "posix":
        print "This app has written for Linux. Exiting now."
        exit()
    elif os.name == "posix":
        global base, pys, django, py
        base = "/usr/local/lib/"
        pys = []
        django = "/dist-packages/django/bin/"
        py = re.compile("^python2\.[0-9]{1}")
        for s in os.listdir(base):
            if py.search(s):
                pys.append(s)

def pyck(lst):
    if len(lst) == 0:
        print "There is Python installed on your comp!"
        print "Exiting."
        exit()
    elif len(lst) > 0:
        a = 0
        for s in lst:
            a += 1
            print "Select Python: [%s]%s" % (a, s)
        try:
            ver = lst[input("")-1]
        except:
            print "There is no Python like that."
            print "Exiting."
            exit()
        os.chdir(base + ver + django)

def go():
    projectlist = []
    for s in os.listdir(os.getcwd()):
        if not "." in s: #proje adi . iceremez, sorun yok yani
            projectlist.append(s)
    if len(projectlist) != 0:
        print "Projects:"
        for s in projectlist:
            print s
    name = raw_input("Project name?")
    print commands.getoutput("python django-admin.py startproject %s" % name)

if __name__ == "__main__":
    start()
    pyck(pys)
    go()