HTML sayfası içinden CSS ve Javascript dosyalarına nasıl link verilir?


Basit bir HTML dosyasını dışarıdan stilize etmek için CSS kullanırız. Aynı şekilde sayfamıza etkileşim katmak için ise Javascript kullanırız. Her ikisi de mevcut html dosyası içerisinde dışarıdan linkle ithal edilmeksizin direkt olarak tanımlanabilmektedir. Ancak bu kod okunabilirliği ve modülerlik bakımından tercih edilen bir yöntem sayılmaz.
Peki nasıl tanımlarız dış CSS ve Javascript dosyalarını: Aşağıda gösteriliyor:

https://gist.github.com/suatatan/f2fc490f01359d2cc13f.js

Reklamlar

Web.Py için kullanıma hazır dizin


Yandex gibi büyük internet sitelerinin de kullanmakta olduğu Web.Py adlı meşhur, basit ve kullanışlı python web framework’u bilindiği üzere Google App Engine’nin kendi framework’unun da ruhunu oluşturmaktadır. Bu noktada Web.py’nin nasıl kullanıldığına girmeden; (vakit az, eğer talep olursa onun için ayrı bir post açarım) Web.py framework’ünü bilgisayarıza indirip hemen kullanabilmeniz için hazırladığım aşağıdaki dosyayı sunuyorum.

Web.py framework’ün güzel taraflarından biri de; ek bir sunucu kurulumuna gerek bırakmamasıdır. Dosyayı indirdikten sonra Windows altında run dosyasını çalıştırdıktan sonra: web browserinızda http://localhost:1234 adlı url’ye girdiğinizde web.py framework’unun çalışan ana sayfasını göreceksiniz.
Dizinde; templating sistem ve statik dizin ayarlamaları yapılmıştır.

Soru olursa memnuniyetle cevaplanacaktır.

Dizinin linki:

Python ile XML verisini işlemek (parse etmek)


Aşağıda bir projemde kullandığım ve işinize yarayabilecek bir örnek var. İteratif XML verilerini ayıklamak işinizi görecektir
XML değişkenine atanmış XML satırları bir sonraki kodlarla işlenmektedir:
Burada kullanılan kütüphane Minidom’dur. Python’un standart kütüphanesidir ve Google App Engine içinde de kullanımı mümkündür.
https://gist.github.com/3e64fdc2a0586943a0ed.js



Bu işlem aşağıdaki gibi de yapılabilir:


dom = parseString(XML)
        
        questions=dom.getElementsByTagName(‘question’)
        for question in questions:
            #NVAL=node.getElementsByTagName(“id”)[0].toxml()
            id=question.getElementsByTagName(“id”)[0].firstChild.data
            text=question.getElementsByTagName(“text”)[0].firstChild.data
            
    
            RESULT=RESULT+id+“
”;

        self.response.out.write(RESULT)

Google App Engine kitabımda bazı okurlarımızın 7. bölümde karşılaştıkları hata hakkında


Okurlarımdan Cemali Gencer Bey şöyle sordu:

Merhaba Suat Bey, Kitabınızdaki 7 Bölümde bulunan uygulamada problem yaşadım. Users kütüphanesi ve üye oturum yönetimi örneği (projem6 örneği) örneğini çalıştıramadım.Karşıma anlamadığım hatalar çıktı ekran görüntüsünü de bir adrese yükledim vaktiniz varsa inceler misiniz?


Cevabım:

Sorunun kaynağı; anaprogram.py dosyasındaki # ile başlaytan yorum satırlarında geçen bozuk karakterlermiş. Bu 2. kere sizde oldu. Sebebi kullandığınız kod editörlerindeki codeset ayarları olabilir. Ancak ayrıntıya hiç gerek yok. Hata raporunda dikkat ettiyseniz ‘ascii codec’ can’t decode hatasına bir daha denk gelirseniz python dosyanızdaki bozuk karakter varsa silin.

Düzeltilmiş kaynak kodlar şuradan indirilebilir.

Kendisine teşekkür ederim.

Google App Engine’de dosya upload etme


Google App Engine ile dosya upload etmek için aşağıdaki kodları kullanabilirsiniz. Bu kodları test ettiğinizde önce dosya ekleme arayüzü açılır sonra dosyanız yüklendikten sonra “dosya yüklendi” diye ifade çıkar. Ayrıca bir link çıkar bu linke tıklayınca dosyanızın sunucadaki halini geri indirebiilirsiniz.
Peki dosyanız nereye kaydedilmiş oluyor?
Google App Engine’de bildiğimiz anlamda bir FTP yoktur. Bu nedenle dosya herhangi bir dizin içine değil, blobstore denilen bir nevi dosya veritabanına kaydedilir. Bu blobstore’a gerek lokalde gerek gerçek sunucuda “Yönetici Dashboard” üzerinden erişip görebilirsiniz.

https://gist.github.com/171af1a0a8486d488a13.js

Generating custom unique id with python:


You can generate custom unique key for databases in python

from datetime import *
from random import *  
def generate_uniqid(self,prefix=“S”,suffix=“F”): now=datetime.datetime.now() SEC= str(now.second) m = str(now.minute) H = str(now.hour) D = str(now.day) M = str(now.month) Y = str(now.year) rn=str(randint(0,10000)) return prefix+Y+M+D+H+m+SEC+“-”+rn+suffix

Converting Google App Engine Datastore Model Class to XML


Model class actually have to_xml() function but this xml schema not customizable and entity based. You can export your model as xml with bit of code:
This functionality is good for data exporting operations:

class TestModule(webapp.RequestHandler): 
    def get(self):
        props=AuditLog().properties()
        data=“n”
        for prop in props:
            data=data+“  {{i.%s}}%s>n”%(prop,prop,prop)
        data=data+“”        
        self.response.out.write(data)