您的位置:首页 > 编程语言 > Python开发

python使用sqlalchemy中间件对MYSQL数据库进行创建、查询、删除操作

2017-09-05 22:03 941 查看
首先安装sqlalchemy,安装方法有两种:通过官网下载源码进行安装;使用pip install sqlachemly

1.建立操作数据库接口模块api.py,

描述:

在接口模块中首先创建一个engine,这里关联的是mysql数据库,也可以是其他类型的数据库

然后定义了几个访问数据库的接口函数,提供对数据库的添加、删除、查询操作

from sqlalchemy import create_engine
from sqlalchemy import func
from sqlalchemy.pool import NullPool
from sqlalchemy.orm import sessionmaker

class API(object):
def __init__(self):
args = 'mysql://root:root@localhost/myDB?charset=utf8'
kwds = NullPool
engine = create_engine(args,poolclass=kwds)
Session = sessionmaker(bind=engine)
self.session = Session()
def create(self, db, **body):
self.session.add(db(**body))
return 'CREATED'
def get_all_content(self, db):
result = list(t.__dict__ for t in self.session.query(db).all())
for i in xrange(0, len(result)
result.pop('_sa_instance_state', None)
return 'OK', result
def delete_context(self, db, db_attr, value):
res = self.session.query(db).filter(db_attr == value).delete()
if res:
self.session.commit()
return 'OK'
else:
return False
def delete_all(self, db):
self.session.query(db).delete()
self.session.commit()
return 'OK'


2.建立数据库访问存储、模型模块model.py,这里定义了一个名字叫test的表,其中包含三个字段id(自动增长),name,sex

from sqlalchemy import Column, Integer, String,schema
from sqlalchemy.ext.declarative import declarative_base
def table_args():
return {
'mysql_engine': 'InnoDB',
'mysql_charset': 'utf8'
}

Base = declarative_base()

class Test(Base):
"""defined a Test"""
__tablename__ = 'test'
__table_args__ = (
schema.UniqueConstraint('id', name = 'uniq_test_id'),
table_args()
)
id = Column(Integer, primary_key=True,autoincrement='auto',nullable=False)
name = Column(String(255), nullable=False)
sex = Column(String(40), nullable=False)

3.访问数据库表记录的方法,建立应用模块application.py,在模块中分别导入model和api模块,实例化出一个api模块的对象,进行所有table内容的查询操作

from model import Test
import api
def query_all_in_test_table():
db_api = api.API()
rv, date = db_api.get_all_content(Test)
print date
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python mysql sqlalchemy orm
相关文章推荐