前言
SQLAlchemy是Python下的一个工具包,提供了SQL工具包及对象关系映射(ORM)工具。这篇文章主要是记录一份可以使用的例程(TODO代码),以后做项目的时候可以直接从这里拷贝并扩展。
开发环境
Python版本:3.5.1
SQLAlchemy版本:1.1.4
操作系统:64位 Win10
例程
from sqlalchemy import create_engine
from sqlalchemy import Column, String, Integer
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 以下是密码加密用
from werkzeug.security import generate_password_hash, check_password_hash
# 创建对象的基类:
Base = declarative_base()
# 定义一张表
class User(Base):
# 表的名字:
__tablename__ = 'users'
# 表的结构:
id = Column(Integer, primary_key=True)
username = Column(String(32), unique=True, index=True)
password_hash = Column(String(128))
def __repr__(self):
return self.username
@property
def password(self):
raise AttributeError(u'密码不可读!')
@password.setter
def password(self, password):
"""以加密方式存储密码"""
self.password_hash = generate_password_hash(password)
def verify_password(self, password):
"""验证密码"""
return check_password_hash(self.password_hash, password)
if __name__ == '__main__':
# 1、建立数据库连接:
engine = create_engine('sqlite:///:memory:', echo=True)
#Base.metadata.drop_all(engine)
# 2、创建表
Base.metadata.create_all(engine)
# 3、创建DBSession类型:
DBSession = sessionmaker(bind=engine)
# 4、创建session对象:
session = DBSession()
# 查找User对象
u = session.query(User).filter_by(id=1).first()
if None == u:
print('创建id=1的帐号')
# 5、创建User对象
u = User(id=1, username='username', password='123456')
# 6、添加到session
session.add(u)
# 7、提交并保存到数据库:
session.commit()
print(u)
# 8、关闭连接
session.close()