如此处所述,我创建了View。
以下可能创建与会话一起使用的视图类吗?
v = Table('viewname', metadata, autoload=True)
class ViewName(object):
def __init__(self, name):
self.name = name
mapper(ViewName, v)
您可以执行此操作,但是必须手动定义主键。假设这id
是v
您要用作主键的列,则可以这样做:
from sqlalchemy import orm
class ViewName(object):
def __init__(self, name):
self.name = name
orm.mapper(ViewName, v, primary_key=[v.c.id])
Session = orm.sessionmaker(bind=engine)
for r in Session().query(ViewName):
print r.id, r.number
要进行测试,只需将此片段粘贴到我的工作示例的末尾,上面链接的答案中即可。有关更多详细信息,请参见文档(例如,您可以使用属性来定义外键)。
_编辑
:或者,您可以在我的原始代码(和您的问题)中略微更改视图定义并编写:
v = Table('viewname', metadata, Column('id', Integer, primary_key=True), autoload=True)
即,已经在表定义中添加了主键。然后,您不需要中的primary_key
参数,问题中orm.mapper
的其余代码即可使用。
我正在使用下面的代码片段映射对象 它没有映射,但当我添加这个时,它工作得很好 但却无法理解它的功能<代码>导入={Instant.class,DateTimeFormatter.class}它如何帮助映射对象?
本文向大家介绍Mybatis中Mapper映射文件使用详解,包括了Mybatis中Mapper映射文件使用详解的使用技巧和注意事项,需要的朋友参考一下 紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明。 Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd。我们先大体上看看支持哪些配置?如下所示,从Eclipse里截了个
我在目标语言为python的swig接口文件中成功地使用了以下类型映射: 然而,当我将目标语言更改为java时,当我尝试构建swg生成的自动生成的c包装代码时,我会遇到很多编译时错误,即。 等等... 我注意到,在python案例中,粘贴到swig包装器代码中的代码包含,等声明,这些代码来自 它位于 当目标语言为java时,此等效代码不会粘贴到swig包装器代码中。我不完全确定为什么不会发生这种情
问题内容: 当我想在网络上显示一些数据时,这些数据需要补充,而且我不知道如何实现,下面是代码: 它提示:’RowProxy’对象不支持项目分配。 我该怎么办? 表“文章”包含“关键字”列,但不包含“标签”列。 问题答案: 您可以在RowProxy中做出命令,以支持项目分配。 例如:
选项1-这个选项很好,因为我可以使用JPA提供的所有接口与DB交互。这个选项是不好的,因为有时我必须加载一个表和一个模型,这似乎是非常多余的,我有3个文件每个表。 选项2-这个选项很好,因为我只需要加载视图,而且每个表有一个文件。这个选项是不好的,因为对于CUD操作,我必须编写本机SQL。
问题内容: 是否有“ Pythonic”方式(我的意思是,没有“ pure SQL”查询)来使用SQLAlchemy定义SQL视图? 问题答案: 更新: 又见SQLAlchemy的使用配方这里 据我所知,开箱即用不支持创建(只读非实例化)视图。但是在SQLAlchemy 0.7中添加此功能非常简单(类似于我在此处给出的示例)。您只需要编写一个编译器扩展即可 。使用此扩展名,您可以编写(假设这是一个