quick_orm是一个Pytho的ORM框架.安装和使用超级简单,可以一分钟上手!基于SQLAlchemy构建,在功能上是SQLAlchemy的超集.quick_orm最大的特点是以非常简单易学易用的形式提供了完备强大的功能.
安装
pipistallquick_orm
HelloWorld示例
fromquick_orm.coreimportDatabasefromsqlalchemyimportColum,Strig__metaclass__=Database.DefaultMetaclassUser:ame=Colum(Strig(30))Database.register()if__ame__=='__mai__':db=Database('sqlite://')#databaseurls:https://docs.sqlalchemy.org/e/latest/core/egies.html#database-urlsdb.create_tables()#createtables,youdo'thavetowriteaySQL.user=User(ame='HelloWorld')db.sessio.add_the_commit(user)#commitusertodatabase.user=db.sessio.query(User).get(1)prit'Myameis',user.ameprit'created_at',user.created_at#created_atadupdated_attimestampsareaddedautomatically.prit'updated_at',user.updated_atuser.ame='TylerLog'db.sessio.commit()#commitchagestodatabase.prit'Myameis',user.ameprit'created_at',user.created_atprit'updated_at',user.updated_at
问答网站数据建模示例
fromquick_orm.coreimportDatabasefromsqlalchemyimportColum,Strig,Text__metaclass__=Database.DefaultMetaclassUser:ame=Colum(Strig(70))@Database.may_to_oe(User)classPost:cotet=Colum(Text)classQuestio(Post):title=Colum(Strig(70))@Database.may_to_oe(Questio)classAswer(Post):pass@Database.may_to_oe(Post)classCommet(Post):pass@Database.may_to_may(Post)classTag:ame=Colum(Strig(70))Database.register()#以上是建模部分,下面是如何使用数据模型if__ame__=='__mai__':db=Database('sqlite://')db.create_tables()user1=User(ame='TylerLog')user2=User(ame='PeterLau')tag1=Tag(ame='quick_orm')tag2=Tag(ame='ice')questio=Questio(user=user1,title='Whatisquick_orm?',cotet='Whatisquick_orm?',tags=[tag1,])questio2=Questio(user=user1,title='Haveyoutriedquick_orm?',cotet='Haveyoutriedquick_orm?',tags=[tag1,])aswer=Aswer(user=user1,questio=questio,tags=[tag1,],cotet='quick_ormisaPythoORMframeworkwhicheablesyoutogetstartedilessthaamiute!')commet1=Commet(user=user2,cotet='goodquestio',post=questio)commet2=Commet(user=user2,cotet='iceaswer',post=aswer,tags=[tag2,])db.sessio.add_all_the_commit([questio,questio2,aswer,commet1,commet2,tag1,tag2,])questio=db.sessio.query(Questio).get(1)prit'tagsforquestio"{0}":"{1}"'.format(questio.title,','.joi(tag.amefortagiquestio.tags))prit'ewcommetforquestio:',questio.commets.first().cotetprit'ewcommetforaswer:',questio.aswers.first().commets.first().cotetuser=db.sessio.query(User).filter_by(ame='PeterLau').oe()prit'PeterLauhasposted{0}commets'.format(user.commets.cout())tag=db.sessio.query(Tag).filter_by(ame='quick_orm').first()prit'{0}questiosaretagged"quick_orm"'.format(tag.questios.cout())






评论