我的项目中有以下文件结构:
model/
models.py
controller/
controller.py
persistence/
persistence.py
test/
test_controller.py
Run Code Online (Sandbox Code Playgroud)
在persistence.py中,我有一段代码:
from sqlalchemy import *
from sqlalchemy.ext.declarative.api import declarative_base
from sqlalchemy.orm.session import sessionmaker
engine = create_engine("sqlite:///database.db", echo=True)
BASE = declarative_base(engine)
def get_session():
engine = create_engine("sqlite:///database.db", echo=False)
Session = sessionmaker(bind=engine)
session = Session()
return session
Run Code Online (Sandbox Code Playgroud)
在models.py 中使用Base 和engine 来使用声明式方法创建数据库。
在 test_controller 中,我导入了模型和持久性。当我运行测试时,会在测试目录下创建一个数据库。更新、插入、删除等操作执行良好,但在完成单元测试之前 SQLAlchemy 引发以下异常:
DetachedInstanceError: Instance <Account at 0x945378c> is not bound to a Session;
attribute refresh operation cannot proceed
Run Code Online (Sandbox Code Playgroud)
访问数据库的所有方法总是关闭会话。所以,似乎我打开的不仅仅是会话。
你知道我如何设置一个 sqlalchemy 数据库用于测试和其他开发,就像 Rails 使用相同的模型模块一样?任何的想法?
这里的测试代码:
from model import Account
engine …Run Code Online (Sandbox Code Playgroud) 我想使用Lucene 6.1.0实现语音搜索,使用Soundex或任何合适的葡萄牙语算法.我在互联网上发现了许多不完整的例子,教导了如何实现自定义标记器,分析器,但似乎这些例子中使用的抽象类在6.1.0版本中并不相同.任何人都可以指出我在哪里可以找到一个很好的文档Lucene,而不仅仅是java文档,没有任何进一步的文档教学如何把事情放在一起?
提前致谢.