閱讀sqlalchemy文檔,我看到了序列化部分。
我想了解一下使用XML序列化匹配與休息web服務如JAX-RS車型SA
有一個Django的擴展,它處理的是一種可能性:django_roa
你知道那種事早已爲sqlalchemy開發或者如果可以做到這一點?
感謝sqlalchemy REST序列化
2
A
回答
1
sqlalchemy.ext.serializer
能支持查詢表達式和其他內部 SQLAlchemy的對象酸洗(與pickle
模塊),它不處理模型對象。絕不會幫助您將模型對象序列化爲XML。可能像pyxser會對你有用。
+0
好的,我會檢查它,謝謝 – 2009-11-16 15:22:07
2
它是一個很長的路要走,直到完全遵守RFC2616,但對於一個原型,我做這樣的事情:
from sqlalchemy import create_engine, Table, Column, Integer, String, ForeignKey, UniqueConstraint
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relation, backref, sessionmaker
from sqlalchemy.sql.expression import desc
import web
import json
DB_PATH = 'sqlite:////tmp/test.db'
Base = declarative_base()
class LocalClient(Base):
__tablename__ = 'local_clients'
__jsonexport__ = ['id', 'name', 'password']
id = Column(Integer, primary_key=True)
name = Column(String, unique=True, nullable=False)
password = Column(String)
def __init__(self, name, password):
self.name = name
self.password = password
def __repr__(self):
return "<LocalClient('%s', '%s')>" % (self.name, self.password)
urls = (
'/a/LocalClient', 'LocalClientsController'
)
class Encoder(json.JSONEncoder):
'''This class contains the JSON serializer function for user defined types'''
def default(self, obj):
'''This function uses the __jsonexport__ list of relevant attributes to serialize the objects that inherits Base'''
if isinstance(obj, Base):
return dict(zip(obj.__jsonexport__, [getattr(obj, v) for v in obj.__jsonexport__]))
return json.JSONEncoder.default(self, obj)
class LocalClientsController:
'''The generic RESTful Local Clients Controller'''
def GET(self):
'''Returns a JSON list of LocalClients'''
engine = create_engine(DB_PATH, echo=False)
Session = sessionmaker(bind=engine)
session = Session()
clis = session.query(LocalClient)
return json.dumps([c for c in clis], cls=Encoder)
相關問題
- 1. 從sqlalchemy序列化/反序列化
- 2. WCF陣列序列化 - REST
- 3. 將sqlalchemy類序列化到json
- 4. json序列化sqlalchemy關聯代理
- 5. Java REST反序列化列表
- 6. Django REST Framework序列化程序驗證
- 7. Django REST保存序列化程序
- 8. Django的序列化程序REST API
- 9. 不同的序列化序列化使用Django的REST框架
- 10. Django REST框架:嵌套序列化器和反序列化
- 11. Django REST框架關係序列化
- 12. Django + rest-framework:序列化任意查詢
- 13. 反序列化XElement時WCF REST問題
- 14. 動態序列化與Django REST
- 15. 使用REST和WCF序列化爲XML
- 16. Django的REST框架序列化錯誤
- 17. django rest框架:contenttype unique_together和序列化
- 18. Spring Data Rest和java.time序列化
- 19. 嵌套序列化器Django Rest框架
- 20. Django rest - 序列化嵌套對象
- 21. 如何使用Django REST序列化器?
- 22. 反序列化SFDC REST服務JSON resopnse
- 23. REST框架:如何序列化對象?
- 24. Django-REST序列化相關字段
- 25. WCF REST JSON API:DataContractJsonSerializer中的DateTime序列化
- 26. 用Django Rest框架序列化
- 27. Django Rest Framework序列化權限
- 28. 反序列化REST日期格式
- 29. Yii2 REST DB幾何字段序列化
- 30. 屬性錯誤Django REST序列化
一些研究,我寫了一個小程序後顯示我想要的東西: HTTP://到位桶.org/ee_lars/resttest代碼真的很醜陋...對於經典字段(Integer,Unicode,Boolean ..),序列化是可以的但我沒有找到處理外鍵和類似東西的方法。 我認爲可以「檢測」某個字段處於特定類型(來自他的Model的映射器),然後將相關模型的URI作爲鏈接放入序列化資源中。無論如何,我不知道如何做到這一點:任何可能性/想法?謝謝。 – 2010-08-04 08:24:39