使用sqlalchemy创建单条数据-分层管理代码

  这里主要是如何把整个流程的代码分层管理,方便维护

 

  不拆分层次,整个流程顺下来的代码看这里:sqlAlchemy基本使用

 

   项目结构:

model.py用来描述表结构:

 1 from sqlalchemy import Column,String,Integer
 2 from sqlalchemy.ext.declarative import declarative_base
 3 
 4 #创建对象的基类
 5 Base=declarative_base()
 6 
 7 #定义User对象
 8 class User(Base):
 9     __tablename__="user"
10 
11     id = Column(String(20),primary_key=True)
12     name = Column(String(20))
13 
14     def __repr__(self):
15 
16         return "<User>%s"%self.name

getConnection.py获取数据库连接 

 1 #导入依赖
 2 from sqlalchemy import create_engine
 3 from sqlalchemy.orm import sessionmaker
 4 from sqlalchemy.ext.declarative import declarative_base
 5 
 6 #创建对象的基类
 7 Base=declarative_base()
 8 
 9 #初始化数据库连接
10 engine = create_engine("mysql+mysqlconnector://root:admin123456@10.1.71.32:3306/test")
11 
12 #创建DBSession类型
13 DBSession = sessionmaker(bind=engine)
14 
15 #创建Session对象
16 session = DBSession()
17 
18 if __name__ == "__main__":
19     import model
20     newuser= model.User(id=3,name="Lisa")
21     session.add(newuser)
22     session.commit()
23     session.close()

main.py执行增删改查操作:

 1 #导入依赖
 2 from model import User
 3 from getConnection import session
 4 
 5 # 创建User对象
 6 newuser = User(id=4, name="曹操")
 7 # 添加到session
 8 session.add(new_user)
 9 # 提交
10 session.commit()
11 # 关闭session
12 session.close()

 遇到的异常及解决办法:

ModuleNotFoundError: No module named 'mysql'

mysql.connector.errors.ProgrammingError: 1698 (28000): Access denied for user 'root'@'localhost'

sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

posted @ 2019-08-12 16:36  wangju003  阅读(261)  评论(0编辑  收藏  举报