7 EKİM 2009, ÇARŞAMBA
Google JSON serileştirme Motoru modelleri Uygulaması
Hiçbir başarı ile uzunca bir süre için arama oldum. Benim proje Django kullanarak değil, orada App Engine modelleri seri hale getirmek için basit bir yol (google.appengine.ext.db.Model) JSON veya kendi seri hale getirici yazmak gerekiyor mu? Model sınıfım oldukça basittir. Örneğin:
class Photo(db.Model):
filename = db.StringProperty()
title = db.StringProperty()
description = db.StringProperty(multiline=True)
date_taken = db.DateTimeProperty()
date_uploaded = db.DateTimeProperty(auto_now_add=True)
album = db.ReferenceProperty(Album, collection_name='photo')
Şimdiden teşekkürler.
CEVAP
7 EKİM 2009, ÇARŞAMBA
Basit bir özyinelemeli fonksiyonu simplejson geçirilen iç içe bir sözlük için bir varlık (ve herhangi bir referents) dönüştürmek için kullanılabilir:
import datetime
import time
SIMPLE_TYPES = (int, long, float, bool, dict, basestring, list)
def to_dict(model):
output = {}
for key, prop in model.properties().iteritems():
value = getattr(model, key)
if value is None or isinstance(value, SIMPLE_TYPES):
output[key] = value
elif isinstance(value, datetime.date):
# Convert date/datetime to MILLISECONDS-since-epoch (JS "new Date()").
ms = time.mktime(value.utctimetuple()) * 1000
ms = getattr(value, 'microseconds', 0) / 1000
output[key] = int(ms)
elif isinstance(value, db.GeoPt):
output[key] = {'lat': value.lat, 'lon': value.lon}
elif isinstance(value, db.Model):
output[key] = to_dict(value)
else:
raise ValueError('cannot encode ' repr(prop))
return output
Bunu PaylaÅŸ:

Nasıl bir Java Sunucu uygulaması gelen...
Neden Google while(1); JSON yanıtların...
Google Uygulama içinde kullanılmayan d...
Ruby on Rails Google App Engine uygula...
Ölçülebilir Varlık Serileştirme: vs Me...