版本:1.1.0b2 |发布日期:2016年7月1日

SQLAlchemy 1.1文档

核心内部

这里列出了一些关键的内部结构。

class sqlalchemy.engine.interfaces.Compiled(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs=immutabledict({}))

表示编译的SQL或DDL表达式。

Compiled对象的__str__方法应该产生该语句的实际文本。Compiled objects are specific to their underlying database dialect, and also may or may not be specific to the columns referenced within a particular set of bind parameters. 在任何情况下,Compiled对象都不应依赖于这些绑定参数的实际值,即使它可能会将这些值引用为默认值。

__init__(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs=immutabledict({}))

构建一个新的Compiled对象。

参数:
  • dialectDialect to compile against.
  • statementClauseElement to be compiled.
  • bind – Optional Engine or Connection to compile this statement against.
  • schema_translate_map -

    在形成结果SQL时要翻译的模式名称字典

    版本1.1中的新功能

  • compile_kwargs – additional kwargs that will be passed to the initial call to Compiled.process().
编译 T0> ( T1> ) T2> ¶ T3>

生成此元素的内部字符串表示。

从版本0.7开始弃用: Compiled对象现在可以在构造函数中编译。

construct_params T0> ( T1> PARAMS =无 T2> ) T3> ¶ T4>

返回此编译对象的绑定参数。

参数:params – a dict of string/object pairs whose values will override bind values compiled in to the statement.
执行 tt> * multiparams** params T5>

执行这个编译的对象。

PARAMS T0> ¶ T1>

返回此编译对象的绑定参数。

标量 * multiparams** params T5>

执行此编译对象并返回结果的标量值。

sql_compiler T0> ¶ T1>

返回一个能够处理SQL表达式的Compiled。

如果这个编译器是一个,它可能会返回'self'。

class sqlalchemy.sql.compiler.DDLCompiler(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs=immutabledict({}))

基础:sqlalchemy.sql.compiler.Compiled

__init__(dialect, statement, bind=None, schema_translate_map=None, compile_kwargs=immutabledict({}))
inherited from the __init__() method of Compiled

构建一个新的Compiled对象。

参数:
  • dialectDialect to compile against.
  • statementClauseElement to be compiled.
  • bind – Optional Engine or Connection to compile this statement against.
  • schema_translate_map -

    在形成结果SQL时要翻译的模式名称字典

    版本1.1中的新功能

  • compile_kwargs – additional kwargs that will be passed to the initial call to Compiled.process().
编译 T0> ( T1> ) T2> ¶ T3>
继承自 compile() 方法 Compiled

生成此元素的内部字符串表示。

从版本0.7开始弃用: Compiled对象现在可以在构造函数中编译。

define_constraint_remote_table 约束表格preparer ¶ T6>

格式化CREATE CONSTRAINT子句的远程表子句。

执行 tt> * multiparams** params T5>
继承自 execute() 方法 Compiled

执行这个编译的对象。

PARAMS T0> ¶ T1>
inherited from the params attribute of Compiled

返回此编译对象的绑定参数。

标量 * multiparams** params T5>
inherited from the scalar() method of Compiled

执行此编译对象并返回结果的标量值。

class sqlalchemy.engine.default。 DefaultDialect convert_unicode = False encoding ='utf-8'paramstyle = Nonedbapi = Noneimplicit_returning = Nonesupports_right_nested_joins = Nonecase_sensitive = Truesupports_native_boolean = Nonelabel_length = None** kwargs ) T14> ¶ T15>

基础:sqlalchemy.engine.interfaces.Dialect

方言的默认实现

construct_arguments =无

可选的各种SQLAlchemy结构的参数说明符集,通常是模式项。

为了实现,建立一系列元组,如下所示:

construct_arguments = [
    (schema.Index, {
        "using": False,
        "where": None,
        "ops": None
    })
]

如果上述构造是在Postgresql方言中建立的,那么Index构造现在将接受关键字参数postgresql_usingpostgresql_where,nad postgresql_opsAny other argument specified to the constructor of Index which is prefixed with postgresql_ will raise ArgumentError.

不包含construct_arguments成员的方言不会参与参数验证系统。对于这样的方言,任何参数名称都可以被所有参与的结构接受,这些结构在以该方言名称为前缀的参数名称空间内。这里的基本原理是,尚未实现此功能的第三方方言继续以旧方式运作。

版本0.9.2中的新功能

也可以看看

DialectKWArgs - 实现了基类,它消耗了DefaultDialect.construct_arguments

create_xid T0> ( T1> ) T2> ¶ T3>

创建一个随机的两阶段交易ID。

此ID将传递给do_begin_twophase(),do_rollback_twophase(),do_commit_twophase()。其格式未指定。

dbapi_exception_translation_map = immutabledict({})

映射用于非常不寻常的情况,即DBAPI发布的异常实际上并不包含它们链接的__name__。

版本1.0.5中的新功能

denormalize_name T0> ( T1> 名称 T2> ) T3> ¶ T4>
继承自 denormalize_name() 方法 Dialect

如果它是全小写名称,则将给定名称转换为后端的不区分大小写的标识符。

此方法仅在方言定义requires_name_normalize = True时使用。

do_begin_twophase(connection, xid)
inherited from the do_begin_twophase() method of Dialect

在给定的连接上开始两阶段事务。

参数:
do_commit_twophase(connection, xid, is_prepared=True, recover=False)
inherited from the do_commit_twophase() method of Dialect

在给定的连接上提交两阶段事务。

参数:
do_prepare_twophase T0> ( T1> 连接 T2>, XID T3> ) T4> ¶ T5>
inherited from the do_prepare_twophase() method of Dialect

在给定的连接上准备一个两阶段事务。

参数:
do_recover_twophase T0> ( T1> 连接 T2> ) T3> ¶ T4>
inherited from the do_recover_twophase() method of Dialect

恢复给定连接上未提交的准备好的两阶段事务标识符的列表。

参数:connection – a Connection.
do_rollback_twophase(connection, xid, is_prepared=True, recover=False)
inherited from the do_rollback_twophase() method of Dialect

在给定连接上回滚两阶段事务。

参数:
engine_created T0> ( T1> 发动机 T2> ) T3> ¶ T4>
inherited from the engine_created() method of Dialect

在返回最后的Engine之前调用一个方便的钩子。

如果方言从get_dialect_cls()方法返回了一个不同的类,那么将在两个类上调用该钩子,首先在由get_dialect_cls()方法返回的方言类上调用并且然后在调用该方法的类上。

钩子应该被方言和/或包装用来对引擎或其组件应用特殊事件。特别是,它允许方言包装类应用方言级事件。

版本1.0.3中的新功能

execute_sequence_format T0> ¶ T1>

tuple

get_check_constraints 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

table_name中返回有关检查约束的信息。

给定一个字符串table_name和一个可选字符串schema,将检查约束信息返回为带有这些键的字典列表:

名称
检查约束的名称
SQLTEXT
检查约束的SQL表达式
**千瓦
其他选项传递给方言的get_check_constraints()方法。

版本1.1.0中的新功能

get_columns 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>
inherited from the get_columns() method of Dialect

返回有关table_name中列的信息。

给定一个Connection,一个字符串table_name和一个可选字符串schema,将列信息返回为包含这些键的字典列表:

名称
该列的名称
类型
[sqlalchemy.types#TypeEngine]
可空
布尔
默认
该列的默认值
自动递增
布尔
序列
一个形式的字典
{'name' str,'start':int,'increment':int,'minvalue':int,
'maxvalue':int,'nominvalue':bool,'nomaxvalue':bool,'cycle':bool}

其他列属性可能存在。

get_dialect_cls T0> ( T1> 网址 T2> ) T3> ¶ T4>
继承自方言的 get_dialect_cls() 方法 Dialect

给定一个URL,返回将被使用的Dialect

这是一个钩子,允许外部插件提供围绕现有方言的功能,允许插件基于入口点从url加载,然后该插件返回要使用的实际方言。

默认情况下,这只是返回cls。

版本1.0.3中的新功能

get_foreign_keys 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>
继承自 get_foreign_keys() 方法 Dialect

table_name中返回有关foreign_keys的信息。

给定一个Connection,一个字符串table_name和一个可选字符串schema,将外键信息作为含有这些键的字典列表返回:

名称
约束的名称
constrained_columns
构成外键的列名称列表
referred_schema
被引用模式的名称
referred_table
被引用表的名称
referred_columns
引用表中与constrained_columns对应的列名称列表
get_indexes 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>
继承自 get_indexes() 方法 Dialect

返回有关table_name中索引的信息。

给定一个Connection,一个字符串table_name和一个可选字符串schema,将索引信息返回为带有这些键的字典列表:

名称
该索引的名称
COLUMN_NAMES
按列顺序排列列表
独特
布尔
get_isolation_level T0> ( T1> dbapi_conn T2> ) T3> ¶ T4>

给定一个DBAPI连接,返回它的隔离级别。

使用Connection对象时,可以使用Connection.connection访问器获取相应的DBAPI连接。

请注意,这是一种方言级别的方法,用作实现ConnectionEngine隔离级别工具的一部分;这些API应该是大多数典型用例的首选。

也可以看看

Connection.get_isolation_level() - 查看当前级别

Connection.default_isolation_level - 查看默认级别

Connection.execution_options.isolation_level - 根据Connection设置隔离级别

create_engine.isolation_level - 根据Engine设置隔离级别

get_pk_constraint conntable_nameschema =无**千瓦 T5> ) T6> ¶ T7>

兼容性方法,为那些没有实现get_pk_constraint()的方言调整get_primary_keys()的结果。

get_primary_keys 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>
继承自 get_primary_keys() 方法 Dialect

返回有关table_name中主键的信息。

已过时。此方法仅由Dialect.get_pk_constraint()的默认实现调用。方言应该直接实施Dialect.get_pk_constraint()方法。

get_table_names connectionschema = None** kw ) T5> ¶ T6>
继承自 get_table_names() 方法 Dialect

返回schema的表名列表。

get_temp_table_names 连接schema =无** kw ) T5> ¶ T6>
inherited from the get_temp_table_names() method of Dialect

如果基础后端支持,则返回给定连接上的临时表名称列表。

get_temp_view_names 连接schema =无** kw ) T5> ¶ T6>

如果基础后端支持,则返回给定连接上的临时视图名称列表。

get_unique_constraints T0> ( T1> 连接 T2>,表名 T3>,架构=无 T4>, **千瓦 T5> ) T6> ¶ T7>

返回关于table_name中的唯一约束的信息。

给定一个字符串table_name和一个可选的字符串schema,返回唯一约束信息作为具有这些键的字典列表:

名称
唯一约束的名称
COLUMN_NAMES
按列顺序排列列表
**千瓦
其他选项传递给方言的get_unique_constraints()方法。

版本0.9.0中的新功能

get_view_definition 连接view_name架构=无**千瓦 T5> ) T6> ¶ T7>

返回视图定义。

给定一个Connection,一个字符串view_name和一个可选字符串schema,返回视图定义。

get_view_names connectionschema = None** kw ) T5> ¶ T6>
继承自 get_view_names() 方法 Dialect

返回数据库中所有可用视图名称的列表。

模式:
可选,从非默认模式中检索名称。
has_sequence 连接sequence_nameschema =无 T5> ¶ T6>
继承自 has_sequence() 方法 Dialect

检查数据库中是否存在特定的序列。

给定一个Connection对象和一个字符串sequence_name,如果给定的序列存在于数据库中,则返回True,否则返回False。

has_table 连接table_nameschema =无 T5> ¶ T6>
继承自 has_table() 方法 Dialect

检查数据库中是否存在特定的表。

给定一个Connection对象和一个字符串table_name,如果给定的表(可能在指定的schema内)存在于数据库中,则返回True,否则返回False 。

normalize_name T0> ( T1> 名称 T2> ) T3> ¶ T4>
继承自 normalize_name() 方法 Dialect

如果检测为不区分大小写,则将给定名称转换为小写。

此方法仅在方言定义requires_name_normalize = True时使用。

on_connect T0> ( T1> ) T2> ¶ T3>

返回一个可调用的对象,用于设置新创建的DBAPI连接。

这用于设置方言范围内的每个连接选项,例如隔离模式,unicode模式等。

如果返回一个可调用对象,则它将被组装到一个接收直接DBAPI连接的池监听器中,并删除所有的包装器。

如果返回None,则不会生成侦听器。

准备者 T0> ¶ T1>

IdentifierPreparer的别名

set_isolation_level dbapi_connlevel

给定一个DBAPI连接,设置其隔离级别。

请注意,这是一种方言级别的方法,用作实现ConnectionEngine隔离级别工具的一部分;这些API应该是大多数典型用例的首选。

也可以看看

Connection.get_isolation_level() - 查看当前级别

Connection.default_isolation_level - 查看默认级别

Connection.execution_options.isolation_level - 根据Connection设置隔离级别

create_engine.isolation_level - 根据Engine设置隔离级别

statement_compiler T0> ¶ T1>

SQLCompiler的别名

type_descriptor T0> ( T1> typeobj T2> ) T3> ¶ T4>

提供一个特定于数据库的TypeEngine对象,给定来自types模块的通用对象。

该方法查找名为colspecs的字典作为类或实例级变量,并传递给types.adapt_type()

class sqlalchemy.engine.interfaces。 Dialect

定义特定数据库和DB-API组合的行为。

元数据定义,SQL查询生成,执行,结果集处理或任何其他数据库之间不同的任何方面都在Dialect的普通类下定义。Dialect作为其他数据库特定对象实现的工厂,包括ExecutionContext,Compiled,DefaultGenerator和TypeEngine。

所有方言实现以下属性:

名称
从DBAPI中立角度(即'sqlite')识别方言的名称
司机
识别方言的DBAPI的名称
位置
如果此方言的参数是位置的,则为真。
paramstyle
要使用的参数类型(某些DB-API支持多个参数类型)。
convert_unicode
如果应将Unicode转换应用于所有str类型,则为true。
编码
用于unicode的编码类型通常默认为'utf-8'。
statement_compiler
一个用于编译SQL语句的Compiled
ddl_compiler
用于编译DDL语句的Compiled
server_version_info
包含正在使用的DB后端的版本号的元组。此值仅适用于支持方言,并且通常在初始连接到数据库时填充。
default_schema_name
默认模式的名称。此值仅适用于支持方言,并且通常在初始连接到数据库时填充。
None
一个用于处理语句执行的ExecutionContext
execute_sequence_format
或者'tuple'或'list'类型,这取决于cursor.execute()接受的第二个参数(它们有所不同)。
报税
用于引用标识符的IdentifierPreparer类。
supports_alter
True if the database supports ALTER TABLE.
max_identifier_length
标识符名称的最大长度。
supports_unicode_statements
指示DB-API是否可以接收SQL语句作为Python unicode字符串
supports_unicode_binds
指示DB-API是否可以以Python unicode字符串的形式接收字符串绑定参数
supports_sane_rowcount
指示方言是否正确实现了UPDATEDELETE语句的行计数。
supports_sane_multi_rowcount
指示当通过executemany执行时,方言是否正确实现了UPDATEDELETE语句的行计数。
preexecute_autoincrement_sequences
如果'隐式'主键功能必须单独执行才能获得它们的值,则为真。这目前面向Postgresql。
implicit_returning
在INSERT执行过程中使用RETURNING或等效,以便在一次执行中加载新生成的主键和其他列缺省值,然后可以通过inserted_primary_key使用这些缺省值。如果insert语句显式指定了returns(),则不会使用“隐式”功能,并且不会使用inserted_primary_key。
dbapi_type_map

该方言的DB-API实现中存在的DB-API类型对象的映射映射到方言使用的TypeEngine实现。

这用于根据cursor.description中存在的DB-API类型将结果集应用于结果集;它只对没有显式类型映射的文本语句的结果集生效。

colspecs
将来自sqlalchemy.types的TypeEngine类的字典映射到特定于方言类的子类。该字典仅为类级别,不能从方言实例本身访问。
supports_default_values
指示结构INSERT INTO tablename DEFAULT VALUES t0 >被支持
supports_sequences
指示方言是否支持CREATE SEQUENCE或类似方式。
sequences_optional
如果为True,则指示Sequence()构造上的“可选”标志是否表示不生成CREATE SEQUENCE。仅适用于支持序列的方言。目前仅用于允许Postgresql SERIAL在指定Sequence()的列上用于其他后端的用法。
supports_native_enum
指示方言是否支持本地ENUM构造。这将阻止types.Enum在使用该类型时生成CHECK约束。
supports_native_boolean
指示方言是否支持本机布尔结构。这将防止types.Boolean在使用该类型时生成CHECK约束。
dbapi_exception_translation_map

一个名称字典,其中包含以键名替换类名的pep-249异常(“IntegrityError”,“OperationalError”等)的名称,以支持DBAPI具有未命名的异常类的情况被引用(例如IntegrityError = MyException)。在绝大多数情况下,这本字典是空的。

版本1.0.5中的新功能

连接 T0> ( T1> ) T2> ¶ T3>

返回一个可调用的对象,用于设置新创建的DBAPI连接。

callable接受一个参数“conn”,它是DBAPI连接本身。它没有回报价值。

这用于设置方言范围内的每个连接选项,例如隔离模式,unicode模式等。

如果返回一个可调用对象,则它将被组装到一个接收直接DBAPI连接的池监听器中,并删除所有的包装器。

如果返回None,则不会生成侦听器。

create_connect_args T0> ( T1> 网址 T2> ) T3> ¶ T4>

构建DB-API兼容的连接参数。

给定一个URL对象,返回一个由* args / ** kwargs组成的元组,直接发送到dbapi的connect函数。

create_xid T0> ( T1> ) T2> ¶ T3>

创建一个两阶段交易ID。

此ID将传递给do_begin_twophase(),do_rollback_twophase(),do_commit_twophase()。其格式未指定。

denormalize_name T0> ( T1> 名称 T2> ) T3> ¶ T4>

如果它是全小写名称,则将给定名称转换为后端的不区分大小写的标识符。

此方法仅在方言定义requires_name_normalize = True时使用。

do_begin T0> ( T1> dbapi_connection T2> ) T3> ¶ T4>

在给定DB-API连接的情况下提供connection.begin()的实现。

DBAPI没有专用的“开始”方法,并且预计事务是隐式的。这个钩子是为那些可能需要额外帮助的DBAPI提供的。

请注意,除非正在使用Transaction对象,否则不会调用Dialect.do_begin()The Dialect.do_autocommit() hook is provided for DBAPIs that need some extra commands emitted after a commit in order to enter the next transaction, when the SQLAlchemy Connection is used in its default “autocommit” mode.

参数:dbapi_connection – a DBAPI connection, typically proxied within a ConnectionFairy.
do_begin_twophase(connection, xid)

在给定的连接上开始两阶段事务。

参数:
do_close T0> ( T1> dbapi_connection T2> ) T3> ¶ T4>

给定一个DBAPI连接,提供connection.close()的实现。

当连接已从池中分离或正在返回超出池的正常容量时,此钩子由Pool调用。

0.8版本中的新功能

do_commit T0> ( T1> dbapi_connection T2> ) T3> ¶ T4>

在给定DB-API连接的情况下提供connection.commit()的实现。

参数:dbapi_connection – a DBAPI connection, typically proxied within a ConnectionFairy.
do_commit_twophase(connection, xid, is_prepared=True, recover=False)

在给定的连接上提交两阶段事务。

参数:
do_execute(cursor, statement, parameters, context=None)

提供一个cursor.execute(语句, 参数)的实现。

do_execute_no_params(cursor, statement, parameters, context=None)

提供cursor.execute(statement)的实现。

参数集合不应该被发送。

do_executemany(cursor, statement, parameters, context=None)

提供cursor.executemany(语句, 参数)的实现。

do_prepare_twophase T0> ( T1> 连接 T2>, XID T3> ) T4> ¶ T5>

在给定的连接上准备一个两阶段事务。

参数:
do_recover_twophase T0> ( T1> 连接 T2> ) T3> ¶ T4>

恢复给定连接上未提交的准备好的两阶段事务标识符的列表。

参数:connection – a Connection.
do_release_savepoint(connection, name)

释放连接上的命名保存点。

参数:
do_rollback T0> ( T1> dbapi_connection T2> ) T3> ¶ T4>

在给定DB-API连接的情况下提供connection.rollback()的实现。

参数:dbapi_connection – a DBAPI connection, typically proxied within a ConnectionFairy.
do_rollback_to_savepoint(connection, name)

将连接回滚到指定的保存点。

参数:
do_rollback_twophase(connection, xid, is_prepared=True, recover=False)

在给定连接上回滚两阶段事务。

参数:
do_savepoint(connection, name)

用给定的名称创建一个保存点。

参数:
classmethod engine_created engine

在返回最后的Engine之前调用一个方便的钩子。

如果方言从get_dialect_cls()方法返回了一个不同的类,那么将在两个类上调用该钩子,首先在由get_dialect_cls()方法返回的方言类上调用并且然后在调用该方法的类上。

钩子应该被方言和/或包装用来对引擎或其组件应用特殊事件。特别是,它允许方言包装类应用方言级事件。

版本1.0.3中的新功能

get_check_constraints 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

table_name中返回有关检查约束的信息。

给定一个字符串table_name和一个可选字符串schema,将检查约束信息返回为带有这些键的字典列表:

名称
检查约束的名称
SQLTEXT
检查约束的SQL表达式
**千瓦
其他选项传递给方言的get_check_constraints()方法。

版本1.1.0中的新功能

get_columns 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

返回有关table_name中列的信息。

给定一个Connection,一个字符串table_name和一个可选字符串schema,将列信息返回为包含这些键的字典列表:

名称
该列的名称
类型
[sqlalchemy.types#TypeEngine]
可空
布尔
默认
该列的默认值
自动递增
布尔
序列
一个形式的字典
{'name' str,'start':int,'increment':int,'minvalue':int,
'maxvalue':int,'nominvalue':bool,'nomaxvalue':bool,'cycle':bool}

其他列属性可能存在。

classmethod get_dialect_cls url

给定一个URL,返回将被使用的Dialect

这是一个钩子,允许外部插件提供围绕现有方言的功能,允许插件基于入口点从url加载,然后该插件返回要使用的实际方言。

默认情况下,这只是返回cls。

版本1.0.3中的新功能

get_foreign_keys 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

table_name中返回有关foreign_keys的信息。

给定一个Connection,一个字符串table_name和一个可选字符串schema,将外键信息作为含有这些键的字典列表返回:

名称
约束的名称
constrained_columns
构成外键的列名称列表
referred_schema
被引用模式的名称
referred_table
被引用表的名称
referred_columns
引用表中与constrained_columns对应的列名称列表
get_indexes 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

返回有关table_name中索引的信息。

给定一个Connection,一个字符串table_name和一个可选字符串schema,将索引信息返回为带有这些键的字典列表:

名称
该索引的名称
COLUMN_NAMES
按列顺序排列列表
独特
布尔
get_isolation_level T0> ( T1> dbapi_conn T2> ) T3> ¶ T4>

给定一个DBAPI连接,返回它的隔离级别。

使用Connection对象时,可以使用Connection.connection访问器获取相应的DBAPI连接。

请注意,这是一种方言级别的方法,用作实现ConnectionEngine隔离级别工具的一部分;这些API应该是大多数典型用例的首选。

也可以看看

Connection.get_isolation_level() - 查看当前级别

Connection.default_isolation_level - 查看默认级别

Connection.execution_options.isolation_level - 根据Connection设置隔离级别

create_engine.isolation_level - 根据Engine设置隔离级别

get_pk_constraint 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

返回关于table_name`上主键约束的信息。

给定一个Connection,一个字符串table_name和一个可选的字符串schema,将主键信息作为字典返回以下键:

constrained_columns
构成主键的列名称列表
名称
主键约束的可选名称。
get_primary_keys 连接table_name架构=无**千瓦 T5> ) T6> ¶ T7>

返回有关table_name中主键的信息。

已过时。此方法仅由Dialect.get_pk_constraint()的默认实现调用。方言应该直接实施Dialect.get_pk_constraint()方法。

get_table_names connectionschema = None** kw ) T5> ¶ T6>

返回schema的表名列表。

get_temp_table_names 连接schema =无** kw ) T5> ¶ T6>

如果基础后端支持,则返回给定连接上的临时表名称列表。

get_temp_view_names 连接schema =无** kw ) T5> ¶ T6>

如果基础后端支持,则返回给定连接上的临时视图名称列表。

get_unique_constraints T0> ( T1> 连接 T2>,表名 T3>,架构=无 T4>, **千瓦 T5> ) T6> ¶ T7>

返回关于table_name中的唯一约束的信息。

给定一个字符串table_name和一个可选的字符串schema,返回唯一约束信息作为具有这些键的字典列表:

名称
唯一约束的名称
COLUMN_NAMES
按列顺序排列列表
**千瓦
其他选项传递给方言的get_unique_constraints()方法。

版本0.9.0中的新功能

get_view_definition 连接view_name架构=无**千瓦 T5> ) T6> ¶ T7>

返回视图定义。

给定一个Connection,一个字符串view_name和一个可选字符串schema,返回视图定义。

get_view_names connectionschema = None** kw ) T5> ¶ T6>

返回数据库中所有可用视图名称的列表。

模式:
可选,从非默认模式中检索名称。
has_sequence 连接sequence_nameschema =无 T5> ¶ T6>

检查数据库中是否存在特定的序列。

给定一个Connection对象和一个字符串sequence_name,如果给定的序列存在于数据库中,则返回True,否则返回False。

has_table 连接table_nameschema =无 T5> ¶ T6>

检查数据库中是否存在特定的表。

给定一个Connection对象和一个字符串table_name,如果给定的表(可能在指定的schema内)存在于数据库中,则返回True,否则返回False 。

初始化 T0> ( T1> 连接 T2> ) T3> ¶ T4>

在连接方式的策略化创作中调用。

允许方言根据服务器版本信息或其他属性配置选项。

这里传递的连接是一个具有完整功能的SQLAlchemy连接对象。

基本方言的initialize()方法应该通过super()调用。

is_disconnect tt> e连接游标 ¶ T6>

如果给定的DB-API错误指示无效连接,则返回True

normalize_name T0> ( T1> 名称 T2> ) T3> ¶ T4>

如果检测为不区分大小写,则将给定名称转换为小写。

此方法仅在方言定义requires_name_normalize = True时使用。

反映 tt> 连接表格include_columnsexclude_columns t5 > ) T6> ¶ T7>

从数据库加载表格描述。

给定一个Connection和一个Table对象,从数据库中反映它的列和属性。

该方法的实现由DefaultDialect.reflecttable()提供,它使用Inspector来检索列信息。

方言应该not试图实现这个方法,而应该实现单独的模式检查操作,比如Dialect.get_columns()Dialect.get_pk_constraint()

reset_isolation_level T0> ( T1> dbapi_conn T2> ) T3> ¶ T4>

给定一个DBAPI连接,将其隔离恢复为默认值。

请注意,这是一种方言级别的方法,用作实现ConnectionEngine隔离级别工具的一部分;这些API应该是大多数典型用例的首选。

也可以看看

Connection.get_isolation_level() - 查看当前级别

Connection.default_isolation_level - 查看默认级别

Connection.execution_options.isolation_level - 根据Connection设置隔离级别

create_engine.isolation_level - 根据Engine设置隔离级别

set_isolation_level dbapi_connlevel

给定一个DBAPI连接,设置其隔离级别。

请注意,这是一种方言级别的方法,用作实现ConnectionEngine隔离级别工具的一部分;这些API应该是大多数典型用例的首选。

也可以看看

Connection.get_isolation_level() - 查看当前级别

Connection.default_isolation_level - 查看默认级别

Connection.execution_options.isolation_level - 根据Connection设置隔离级别

create_engine.isolation_level - 根据Engine设置隔离级别

classmethod type_descriptor typeobj

将泛型转换为特定于方言的类型。

Dialect类通常使用类型模块中的types.adapt_type()函数来完成此操作。

返回的结果被缓存每个方言类,因此可以不包含dialect-instance状态。

class sqlalchemy.engine.default。 DefaultExecutionContext

基础:sqlalchemy.engine.interfaces.ExecutionContext

get_lastrowid T0> ( T1> ) T2> ¶ T3>

在INSERT后返回self.cursor.lastrowid或等价物。

这可能涉及调用特殊的游标函数,在游标(或新游标)上发出新的SELECT,或者返回在post_exec()中计算的存储值。

这个函数只支持支持“隐式”主键生成的方言,将preexecute_autoincrement_sequences设置为False,并且没有明确的id值绑定到语句。

函数被调用一次,直接在post_exec()之后以及事务提交或生成ResultProxy之前。如果post_exec()方法将值赋给self._lastrowid,则该值将用于代替调用get_lastrowid()。

Note that this method is not equivalent to the lastrowid method on ResultProxy, which is a direct proxy to the DBAPI lastrowid accessor in all cases.

get_result_processor type_colnamecoltype ¶ T6>

返回cursor.description中给定类型的'结果处理器'。

这有一个默认实现,方言可以覆盖上下文相关的结果类型处理。

set_input_sizes(translate=None, exclude_types=None)

给定一个游标和ClauseParameters,使用bind参数的TypeEngine对象中的DB-API类型,在游标上调用setinputsizes()的适当样式。

这种方法只能由那些需要它的方言调用,目前是cx_oracle。

class sqlalchemy.engine.interfaces。 ExecutionContext

与单个执行相对应的方言的信使对象。

ExecutionContext应该有这些数据成员:

连接
连接对象,可由默认值生成器自由使用以执行SQL。此连接应引用root_connection的相同底层连接/事务资源。
root_connection
Connection对象,它是此ExecutionContext的源。此连接可能有close_with_result = True设置,在这种情况下,它只能使用一次。
方言
创建这个ExecutionContext的方言。
光标
从连接采购的DB-API游标,
编译
如果传递给构造函数,正在执行sqlalchemy.engine.base.Compiled对象,
声明
要执行的语句的字符串版本。传递给构造函数,或者必须在pre_exec()完成时由sql.Compiled对象创建。
参数
绑定传递给execute()方法的参数。对于编译语句,这是一个词典或词典列表。对于文本语句,它应该采用适合于该方言的参数样式的格式(即用于非位置的字典或列表,列表或用于位置的列表/列表的列表)。
isinsert
如果语句是INSERT,则为真。
isupdate
如果语句是UPDATE,则为真。
should_autocommit
如果陈述是“可提交”陈述,则为真。
prefetch_cols
客户端默认触发的列对象列表。适用于插入和更新。
postfetch_cols
列表的一个列表对象的服务器端默认或内联SQL表达式值被触发。适用于插入和更新。
create_cursor T0> ( T1> ) T2> ¶ T3>

返回从此ExecutionContext连接生成的新游标。

有些方言可能希望改变connection.cursor()的行为,比如postgresql,它可能会返回一个PG“服务器端”光标。

异常 =无

ExecutionContext尝试执行语句时捕获到的DBAPI级异常。

该属性仅在ConnectionEvents.dbapi_error()事件中有意义。

版本0.9.7中的新功能

get_rowcount()

返回DBAPI cursor.rowcount值,或者在某些情况下为解释值。

有关详细信息,请参阅ResultProxy.rowcount

handle_dbapi_exception T0> ( T1> ë T2> ) T3> ¶ T4>

接收执行时发生的DBAPI异常,结果获取等。

is_disconnect =无

如果此ExecutionContext试图执行语句时捕获DBAPI级别的异常,则布尔标志设置为True或False。

该属性仅在ConnectionEvents.dbapi_error()事件中有意义。

版本0.9.7中的新功能

lastrow_has_defaults T0> ( T1> ) T2> ¶ T3>

如果最后一个INSERT或UPDATE行包含内联或数据库缺省值,则返回True。

post_exec T0> ( T1> ) T2> ¶ T3>

在执行编译语句后调用。

如果一个编译语句被传递给了这个ExecutionContext,那么这个last_insert_idslast_inserted_pa​​rams等等此方法完成后,数据成员应该可用。

pre_exec T0> ( T1> ) T2> ¶ T3>

在执行编译语句之前调用。

如果将编译语句传递给此ExecutionContext,则必须在完成此语句后初始化语句参数数据成员。

结果 T0> ( T1> ) T2> ¶ T3>

返回与此ExecutionContext相对应的结果对象。

返回一个ResultProxy。

should_autocommit_text T0> ( T1> 语句 T2> ) T3> ¶ T4>

解析给定的文本语句,如果引用“可提交”语句,则返回True

class sqlalchemy.log。 已识别
class sqlalchemy.sql.compiler.IdentifierPreparer(dialect, initial_quote='"', final_quote=None, escape_quote='"', omit_schema=False)

根据选项处理标识符的引用和案例折叠。

__init__(dialect, initial_quote='"', final_quote=None, escape_quote='"', omit_schema=False)

构建一个新的IdentifierPreparer对象。

initial_quote
开始分隔标识符的字符。
final_quote
结束分隔标识符的字符。默认为initial_quote
omit_schema
防止预先设定模式名称。用于不支持模式的数据库。
format_column(column, use_table=False, name=None, table_name=None)

准备一个引用的列名称。

format_schema namequote =无 t5 >

准备一个带引号的模式名称。

format_table tableuse_schema = Truename =无 ) T5> ¶ T6>

准备一个带引号的表和模式名称。

format_table_seq use_schema = True t5 >

将表格名称和模式格式化为元组。

引用 identforce =无 t5 >

有条件地引用标识符。

'force'标志应该被视为已弃用。

quote_identifier T0> ( T1> 值 T2> ) T3> ¶ T4>

引用一个标识符。

子类应该覆盖它以提供依赖于数据库的引用行为。

quote_schema(schema, force=None)

有条件地引用模式。

子类可以覆盖此以提供模式名称的数据库相关引用行为。

'force'标志应该被视为已弃用。

unformat_identifiers T0> ( T1> 标识符 T2> ) T3> ¶ T4>

将“schema.table.column”类字符串解压缩到组件中。

class sqlalchemy.sql.compiler。 SQLCompiler dialect语句column_keys = None,inline = False** kwargs / T10>

基础:sqlalchemy.sql.compiler.Compiled

Compiled的默认实现。

ClauseElement对象编译为SQL字符串。

__init__(dialect, statement, column_keys=None, inline=False, **kwargs)

构建一个新的SQLCompiler对象。

参数:
  • dialectDialect to be used
  • statementClauseElement to be compiled
  • column_keys – a list of column names to be compiled into an INSERT or UPDATE statement.
  • inline - 是否将INSERT语句生成为“inline”未格式化以返回任何生成的默认值
  • kwargs - 超类要使用的附加关键字参数。
ansi_bind_rules = False

SQL 92不允许在SELECT的columns子句中使用绑定参数,也不允许含糊不清的表达式,例如“?=?“。如果目标驱动程序/ DB执行此操作,则编译器子类可将此标志设置为False

construct_params params = None_group_number = None_check = True ) T5> ¶ T6>

返回一个绑定参数键和值的字典

default_from T0> ( T1> ) T2> ¶ T3>

当SELECT语句没有froms时,调用并且不添加FROM子句。

让Oracle有机会在字符串输出中加入FROM DUAL

escape_literal_column T0> ( T1> 文本 T2> ) T3> ¶ T4>

为literal_column()构造提供转义。

get_select_precolumns select** kw t5 >

在构建SELECT语句时调用,位置就在列表之前。

isdelete = False

可以在实例级别设置的类级缺省值来定义此编译的实例是否代表INSERT / UPDATE / DELETE

isinsert = False

可以在实例级别设置的类级缺省值来定义此编译的实例是否代表INSERT / UPDATE / DELETE

isupdate = False

可以在实例级别设置的类级缺省值来定义此编译的实例是否代表INSERT / UPDATE / DELETE

PARAMS T0> ¶ T1>

返回嵌入到此编译对象中的绑定参数字典,用于那些存在的值。

render_literal_value(value, type_)

将绑定参数的值呈现为带引号的文字。

这用于不接受目标驱动程序/数据库绑定参数的语句部分。

这应该由使用DBAPI的引用服务的子类实现。

render_table_with_column_in_update_from = False

设置为True class,以指示多表UPDATE语句中的SET子句应使用表名限定列(即仅限于MySQL)

返回 =无

如果语句是CRUD并且隐式或显式地定义返回列,则保存“返回”列集合

returning_precedes_values = False

设置为True classwide以在VALUES或WHERE子句(即MSSQL)之前生成RETURNING子句,

update_from_clause update_stmtfrom_tableextra_fromsfrom_hints t5 >,** kw

提供一个钩子来覆盖UPDATE..FROM子句的生成。

MySQL和MSSQL覆盖了这一点。

update_limit_clause T0> ( T1> update_stmt T2> ) T3> ¶ T4>

为MySQL提供一个钩子来将LIMIT添加到UPDATE中

update_tables_clause update_stmtfrom_tableextra_froms/ T5> ) T6> ¶ T7>

提供一个钩子来覆盖UPDATE语句中的初始表子句。

MySQL覆盖了这个。