quick_orm Python ORM 框架

我要开发同款
匿名用户2012年04月21日
24阅读
开发技术Python
所属分类程序开发、ORM/持久层框架
授权协议BSD

作品详情

quick_orm是一个Python的ORM框架.安装和使用超级简单,可以一分钟上手!基于SQLAlchemy构建,在功能上是SQLAlchemy的超集.quick_orm最大的特点是以非常简单易学易用的形式提供了完备强大的功能.

 

安装

pipinstallquick_orm

 

HelloWorld示例

fromquick_orm.coreimportDatabasefromsqlalchemyimportColumn,String__metaclass__=Database.DefaultMetaclassUser:name=Column(String(30))Database.register()if__name__=='__main__':db=Database('sqlite://')#databaseurls:https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urlsdb.create_tables()#createtables,youdon'thavetowriteanySQL.user=User(name='HelloWorld')db.session.add_then_commit(user)#commitusertodatabase.user=db.session.query(User).get(1)print'Mynameis',user.nameprint'created_at',user.created_at#created_atandupdated_attimestampsareaddedautomatically.print'updated_at',user.updated_atuser.name='TylerLong'db.session.commit()#commitchangestodatabase.print'Mynameis',user.nameprint'created_at',user.created_atprint'updated_at',user.updated_at

 

问答网站数据建模示例

fromquick_orm.coreimportDatabasefromsqlalchemyimportColumn,String,Text__metaclass__=Database.DefaultMetaclassUser:name=Column(String(70))@Database.many_to_one(User)classPost:content=Column(Text)classQuestion(Post):title=Column(String(70))@Database.many_to_one(Question)classAnswer(Post):pass@Database.many_to_one(Post)classComment(Post):pass@Database.many_to_many(Post)classTag:name=Column(String(70))Database.register()#以上是建模部分,下面是如何使用数据模型if__name__=='__main__':db=Database('sqlite://')db.create_tables()user1=User(name='TylerLong')user2=User(name='PeterLau')tag1=Tag(name='quick_orm')tag2=Tag(name='nice')question=Question(user=user1,title='Whatisquick_orm?',content='Whatisquick_orm?',tags=[tag1,])question2=Question(user=user1,title='Haveyoutriedquick_orm?',content='Haveyoutriedquick_orm?',tags=[tag1,])answer=Answer(user=user1,question=question,tags=[tag1,],content='quick_ormisaPythonORMframeworkwhichenablesyoutogetstartedinlessthanaminute!')comment1=Comment(user=user2,content='goodquestion',post=question)comment2=Comment(user=user2,content='niceanswer',post=answer,tags=[tag2,])db.session.add_all_then_commit([question,question2,answer,comment1,comment2,tag1,tag2,])question=db.session.query(Question).get(1)print'tagsforquestion"{0}":"{1}"'.format(question.title,','.join(tag.namefortaginquestion.tags))print'newcommentforquestion:',question.comments.first().contentprint'newcommentforanswer:',question.answers.first().comments.first().contentuser=db.session.query(User).filter_by(name='PeterLau').one()print'PeterLauhasposted{0}comments'.format(user.comments.count())tag=db.session.query(Tag).filter_by(name='quick_orm').first()print'{0}questionsaretagged"quick_orm"'.format(tag.questions.count())
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论