使用了pymssql做为sqlalchemy的底层驱动,ID使用了MSSQL的类型内容为值为GUID
import uuid
from sqlalchemy.sql import text
from sqlalchemy.types import TypeDecorator,CHAR
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.dialects.mssql.base import MSUniqueIdentifier
from sqlalchemy import create_engine, ForeignKey,func
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Table, Column, Integer, String,DateTime,Boolean
import sqlalchemy.orm as o
import sqlalchemy as s
import sqlalchemy.types as types
engine = create_engine('mssql+pymssql://sa:123456@localhost:1433/test',echo=True)
#engine=create_engine('mysql+mysqlconnector://root:123456@localhost:3306/test',echo=True)
Base = declarative_base()
metadata=Base.metadata
class User(Base):
__tablename__ = 'user'
#id = Column(Integer, primary_key=True)
id = Column(MSUniqueIdentifier(),server_default=text('newid()'),primary_key=True)
name = Column(String(200),nullable=False)
fullname = Column(String(200),nullable=False)
password = Column(String(200),nullable=False)
createTime=Column(DateTime, default=func.now(),nullable=False)
isDelete=Column(Boolean,default=False,nullable=False)
def __repr__(self):
return "<User(name='%s', fullname='%s',password='%s',createTime='%s',isDelete='%s')>" % \
(self.name, self.fullname, self.password,self.createTime,self.isDelete)
metadata.create_all(bind=engine)
Session=o.sessionmaker(bind=engine)
s=Session()
lucy=User(name='lucy',fullname='lucy.F',password='asdf')
s.add(lucy)
s.commit()
users=[User(name='maven',fullname='maven.sms',password='1234'),
User(name='fang',fullname='zhang fang',password='lkjhsd')]
s.add_all(users)
s.commit()
fang=s.query(User).filter(User.name=='fang').first()
print fang
users=fang=s.query(User).filter(User.name=='fang').all()
print users
count=s.query(User).filter(User.name=='fang').count()
print count