sqlalchemy的简单操作汇总

具体解答请参看注释
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker,mapper

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
from sqlalchemy.dialects.mysql import \
        BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, \
        DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER, \
        LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR, \
        NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP, \
        TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR

DB_CONNECT_STRING = 'mysql+mysqldb://root:root@localhost/asset_cache?charset=utf8'
engine = create_engine(DB_CONNECT_STRING, echo=True)
DB_Session = sessionmaker(bind=engine)
session = DB_Session()

metadata = MetaData()
#构建一个表结构,但是代码中并没有看到他是如何和engin和session产生关联的
#暂且认为在MetaData()里面有代码做了这个工作了吧
userTable = Table(
    "wzp_user",metadata,
    Column('user_id', Integer, primary_key=True),
    Column('user_name', VARCHAR(50), unique=True, nullable=False),
    Column('password', VARCHAR(40), nullable=True)
)

#没有就创建,有了就不管
metadata.create_all(engine)

#构建一个User类,用于操作单条记录
class User(object):
    pass
#和表结构绑定起来
mapper(User, userTable)

#这里是一个创建一条记录的步骤,但是这个只能做一次,下次就会因为重复而报错,所以代码中跳过了
def main1():
    u = User()
    u.user_name='alchemytestuser1'
    u.password='123456'
    session.add(u)
    session.flush()
    session.commit()

#这是一个查询的过程
def main():
    query = session.query(User)
    print '------------------------1'
    print list(query)
    print '------------------------2'
    print query.all()
    for u in query.all():
        print u.user_name,u.password

    print '------------------------3'
    print query.get(1).password
    session.close()

if __name__ == '__main__':
    main()



                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值