当前位置: 首页 > 面试题库 >

可以在SqlAlchemy中使用mapper使用类映射视图吗?

后源
2023-03-14
问题内容

如此处所述,我创建了View。

以下可能创建与会话一起使用的视图类吗?

v = Table('viewname', metadata, autoload=True)

class ViewName(object):
    def __init__(self, name):
       self.name = name

mapper(ViewName, v)

问题答案:

您可以执行此操作,但是必须手动定义主键。假设这idv您要用作主键的列,则可以这样做:

    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中添加此功能非常简单(类似于我在此处给出的示例)。您只需要编写一个编译器扩展即可 。使用此扩展名,您可以编写(假设这是一个