【发布时间】:2015-07-28 16:04:53
【问题描述】:
我是 sqlalchemy 的新手,我正在尝试弄清楚如何让事情变得更清洁和连接。
我创建了一个 /model base.py 文档,在其中创建了一个会话并在表中建立了我的所有实体(以及关系等)。我想创建另一个模块,在其中对 base.py 中的实体(表)进行 CRUD 操作。该文件名为 object.py,具有类 BaseAPI(object) 并具有不同的功能“创建”“读取”“更新”和“删除”。我想确保我在 object.py 中连接到我的表 (base.py) 并在实体 User 上进行操作。对于这种情况,实体(表)是用户。
这是我在 API object.py 文档中的内容:
#!/usr/bin/env python
from sqlalchemy import create_engine
from sqlalchemy.orm import relationship, backref, sessionmaker
from datetime import datetime, timedelta
import notssdb.model
from base import User #importing from the module base.py -- doesn't work
engine = create_engine('sqlite:///./notssdb.db', echo=True) #in-memory sql engine
# create a Session
Session = sessionmaker(bind=engine)
class BaseAPI(object):
# DBSession = scoped_session(sessionmaker(engine))
# users = DBSession.query(User).all()
def __init__ (self):
session = Session()
# CREATE USER
def create_user(self, username, password, fullname):
new_user = User(username, password, fullname)
self.session.commit(new_user)
print(username, password, fullname)
我是否导入了太多东西?我需要导入所有的 sqlalchemy 工具吗?我的 BaseAPI 类下的 init 构造函数是否需要实例化数据库会话?
【问题讨论】:
标签: python api session sqlalchemy crud