接着前面讲解的Sqlalchemy框架。再举个例子。相关阅读: Python 3.x之数据库框架Sqlalchemy操作SQlite http://www.linuxidc.com/Linux/2011-12/48863.htm如下所示:这个例子是参考别人的Code的。
- __author__ = "minggxu9"
- import sqlalchemy
- from sqlalchemy import create_engine
- eng=create_engine("sqlite:///:memory:",echo=True)
-
- eng.execute("select 1").scalar()
-
- from sqlalchemy.ext.declarative import declarative_base
- Base=declarative_base()
-
- #########################################################
- from sqlalchemy import join,Table,MetaData,
- select,func,
- and_,
- Column,ForeignKey,
- Integer,String,Text,Binary
-
- from sqlalchemy.orm import deferred,mapper,
- relationship,column_property,
- object_session,
- validates
-
- #########################################################
- metadata=MetaData()
- #########################################################
- class Book(Base):
- __tablename__="book"
- book_id=Column(Integer,primary_key=True)
- title=Column(String(200),nullable=False)
- summary=Column(String(2000))
- excerpt=deferred(Column(Text))
- photo1=deferred(Column(Binary),group="photos")
- photo2=deferred(Column(Binary),group="photos")
- photo3=deferred(Column(Binary),group="photos")
-
- class Address(Base):
- __tablename__="address"
- id=Column(Integer,primary_key=True)
- user_id=Column(Integer,ForeignKey("user.id"))
-
- class User(Base):
- __tablename__="user"
- id=Column(Integer,primary_key=True)
- firstname=Column(String(50))
- lastname=Column(String(50))
- #fullname=column_property(firstname+" "+lastname)
- #address_count = column_property(
- # select([func.count(Address.id)]).
- # where(Address.user_id==id)
- #)
- addresses=relationship("Address")
-
- @validates("addresses")
- def validate_address(self,key,address):
- assert "@" in address.email
- return address
-
- @property
- def fullname(self):
- return self.firstname+" "+self.lastname
-
- @property
- def address_count(self):
- return object_session(self).
- scalar(select([func.count(Address.id)]).
- where(Address.user_id==self.id))
- #########################################################
- Base.metadata.create_all(eng)
-
- #ed1_user=User("ed1","Ed1 Jones","ed1spassword")
- #ed2_user=User("ed2","Ed2 Jones","ed2spassword")
-
- #print("-----------------------")
-
- #from sqlalchemy.orm import Session
- #ses=Session(bind=eng)
- #ses.add(ed1_user)
- #ses.add(ed2_user)
- #ses.commit()
在Python 2.7平台下访问MySQL 5.0数据库使用Python 2.7 CURD 操作非关系型数据库MongoDB相关资讯 python
- Python 为什么要迁移到 Github (01月26日)
- Python 程序员最常犯的十个错误 (12/11/2015 18:32:46)
- Python 面向对象编程 (10/06/2015 21:19:35)
| - Python 决定迁移到 GitHub (01月03日)
- Python面试必须要看的15个问题 (11/26/2015 22:23:21)
- Python 开发者节省时间的 10 个方 (10/04/2015 06:58:39)
|
本文评论 查看全部评论 (0)