pyramid.interfaces

其他接口

interface IAuthenticationPolicy[源代码]

表示金字塔身份验证策略的对象。

effective_principals(request)

返回表示有效主体的序列,通常包括 userid 以及当前用户所属的任何组,始终包括“系统”组,例如 pyramid.security.Everyonepyramid.security.Authenticated .

forget(request)

返回一组适合在后续请求中“忘记”当前用户的头。

authenticated_userid(request)

返回已验证的 useridNone 如果找不到经过身份验证的用户ID。此策略方法应确保与用户相关的任何持久存储中都存在记录(用户不应被删除);如果与当前ID相关的记录在持久存储中不存在,则应返回 None .

remember(request, userid, **kw)

返回一组适合“记住”的标题 userid 已命名 userid 在响应中设置时。个人身份验证策略及其使用者可以决定 **kw .

unauthenticated_userid(request)

返回 未经认证的 用户标识。这种方法与 authenticated_userid 但是只允许基于请求中存在的数据返回用户ID;它不需要(也不应该)检查任何持久存储,以确保与请求用户ID相关的用户记录存在。

此方法主要用于帮助 authenticated_userid 方法从请求数据中提取凭证,提取用于对请求进行身份验证的特定头、查询字符串等。

interface IAuthorizationPolicy[源代码]

表示金字塔授权策略的对象。

principals_allowed_by_permission(context, permission)

返回 permission 在里面 context . 此行为是可选的;如果选择不实现它,则应将此方法定义为引发 NotImplementedError . 只有当 pyramid.security.principals_allowed_by_permission 使用API。

permits(context, principals, permission)

返回的实例 pyramid.security.Allowed 如果有 principals 被允许 permission 在当前 context ,否则返回的实例 pyramid.security.Denied .

interface IExceptionResponse[源代码]

延伸: pyramid.interfaces.IExceptionpyramid.interfaces.IResponse

表示wsgi响应的接口,它也是一个异常对象。使用此接口作为 context 为引发的所有异常类型应用已注册的视图 Pyramid 内部(继承自 pyramid.response.Response 包括 pyramid.httpexceptions.HTTPNotFoundpyramid.httpexceptions.HTTPForbidden

prepare(environ)

准备作为wsgi应用程序调用的响应

interface IRoute[源代码]

表示从返回的对象类型的接口 IRoutesMapper.get_route

match(path)

如果 path 传递给此函数的 pattern 对于此路由,返回一个字典(“matchdict”),其中包含表示模式中动态段标记的键,映射到从提供的 path .

如果 path 传递给此函数的 pattern 从这条路线返回 None .

factory

这个 root factory 用于 Pyramid 此路由匹配时的路由器(或 None

generate(kw)

基于填充模式中的动态段标记,使用 kw 提供字典。

name

路线名称

predicates

一系列 route predicate 对象,用于在基本模式匹配完成后确定请求是否与此路由匹配。

pattern

路线模式

pregenerator

此属性应为 None 或实现 IRoutePregenerator 界面

interface IRoutePregenerator[源代码]
__call__(request, elements, kw)

预产生器是由开发人员与 route . 路径的预产生器由 pyramid.request.Request.route_url() 为了调整用户为特殊目的传递给它的参数集,例如塔架“子域”支持。它将影响由返回的URL route_url .

一个预产生器应该返回 (elements, kw) 在检查传递给此函数的原始参数之后,这些参数是 (request, elements, kw) . 最简单的预产生器是:

def pregenerator(request, elements, kw):
    return elements, kw

你可以通过一个 pregenerator 论据 pyramid.config.Configurator.add_route() 功能。

interface ICSRFStoragePolicy[源代码]

能够验证CSRF令牌并生成新令牌的对象。

new_csrf_token(request)

创建并返回一个新的随机跨站点请求伪造保护令牌。令牌将是与ASCII兼容的Unicode字符串。

check_csrf_token(request, token)

确定是否提供 token 是有效的。大多数实现应该简单地比较 token 到当前值 get_csrf_token 但是可以使用该方法所需的任何机制来验证令牌。

返回 True 如果 token 有效,否则 False .

get_csrf_token(request)

返回跨站点请求伪造保护令牌。它将是一个与ASCII兼容的Unicode字符串。如果以前为此用户设置了令牌,则通过 new_csrf_token ,将返回该令牌。如果之前没有设置CSRF令牌, new_csrf_token 将被调用,这将创建和设置一个令牌,并且此令牌将被返回。

interface ISession[源代码]

延伸: pyramid.interfaces.IDict

表示会话的接口(Web会话对象,通常通过 request.session .

会话的键和值必须是可pickle的。

警告

Pyramid 2.0会话只需要支持可以使用JSON序列化的类型。建议切换任何会话实现以仅支持JSON,并且只在会话中存储基元类型。见 金字塔2.0中Isession的更改 有关进行此更改的原因的详细信息。

在 1.9 版更改: 不再需要会话来实现 get_csrf_tokennew_csrf_token . CSRF令牌支持已移动到可插拔的 pyramid.interfaces.ICSRFStoragePolicy 配置挂钩。

peek_flash(queue='')

查看闪存中的队列。调用此消息后,队列仍保留在闪存中。返回队列;它是由 pyramid.interfaces.ISession.flash()

invalidate()

使会话无效。由…引起的行动 invalidate 是依赖于实现的,但它应该具有完全取消与当前请求的会话中存储的任何数据关联的效果。它可能设置响应值(例如清除cookie的值),也可能不设置。

调用后可以使用无效会话 invalidate 从而创建新会话来存储数据。这使需要全新会话的工作流成为可能,例如在更改权限级别或防止固定攻击的情况下。

changed()

将会话标记为已更改。会话的用户应在改变一个可变对象(即 会话的值 (在改变会话本身之后不应该需要它)。例如,如果用户在会话中的键下存储了字典 foo 他或她会的 session['foo'] = {{}}changed() 不用打电话。但是,如果随后他或她 session['foo']['a'] = 1changed() 必须调用会话机制来注意内部字典的变化。

flash(msg, queue='', allow_duplicate=True)

将闪存消息推送到闪存队列的末尾,该队列由 queue . 通过传递可选的 queue ,必须是字符串。如果 allow_duplicate 如果 msg 队列中已存在,将不会重新添加。

created

表示创建时的epoch时间的整数。

new

布尔属性。如果 True ,会话是新的。

pop_flash(queue='')

从闪存中弹出队列。调用此消息后,队列将从闪存中删除。返回队列;它是由 pyramid.interfaces.ISession.flash()

interface ISessionFactory[源代码]

表示工厂的接口,该工厂接受请求对象并返回ISession对象。

__call__(request)

返回ISession对象

interface IRendererInfo[源代码]

实现此接口的对象将传递给 renderer factory 作为其唯一参数的构造函数(按惯例命名 info

registry

创建渲染器时的“当前”应用程序注册表

clone()

返回不共享任何可变状态的浅副本。

type

渲染器类型名称

settings

与当前应用程序相关的部署设置字典

name

用户作为呈现器名称传递的值

package

找到呈现程序配置语句时的“当前包”

interface IRendererFactory[源代码]
__call__(info)

返回实现的对象 pyramid.interfaces.IRenderer . info 是一个实现 pyramid.interfaces.IRendererInfo .

interface IRenderer[源代码]
__call__(value, system)

使用视图的结果调用渲染器 (value )传入并返回一个结果(字符串或用作响应主体的Unicode对象)。系统计算的值由系统在 system 参数,这是一个字典。字典中的键包括: view (返回值的可调用视图), renderer_name (渲染器的模板名或简单名称), context (上下文对象传递给视图),以及 request (传递给视图的请求对象)。

interface IRequestFactory[源代码]

生成请求的实用程序

__call__(environ)

返回的实例 pyramid.request.Request

blank(path)

返回空的请求对象(请参见 pyramid.request.Request.blank()

interface IResponseFactory[源代码]

一种产生响应的实用程序。

__call__(request)

返回实现IResponse的响应对象,例如 pyramid.response.Response )它应该在什么时候处理这个案子 requestNone .

interface IRouter[源代码]

基于视图注册表将请求路由到“视图”代码的wsgi应用程序。

registry

此应用程序的本地组件体系结构注册表。

invoke_request(request)

调用 Pyramid 请求管道。

请求处理 有关请求管道的信息。

输出应为 pyramid.interfaces.IResponse 对象或引发的异常。

request_context(environ)

从wsgi环境创建新的请求上下文。

请求上下文用于在处理请求时推/弹出所需的线程局部变量。它还包含一个初始化的 pyramid.interfaces.IRequest 使用已注册的 pyramid.interfaces.IRequestFactory . 上下文可以用作上下文管理器来控制线程本地生命周期:

with router.request_context(environ) as request:
    ...

或者,上下文可以不使用 with 通过手动调用 begin()end() 方法。

ctx = router.request_context(environ)
request = ctx.begin()
try:
    ...
finally:
    ctx.end()
interface IViewMapperFactory[源代码]
__call__(self, **kw)

返回实现的对象 pyramid.interfaces.IViewMapper . kw 将是包含视图特定参数的字典,例如 permissionpredicatesattrrenderer 和其他项目。IViewMapperFactory由使用 pyramid.config.Configurator.add_view() 为希望修改潜在视图可调用调用调用调用签名和响应值的扩展开发人员提供一个插件点。

interface IViewMapper[源代码]
__call__(self, object)

提供任意对象(函数、类或实例)时,返回带有调用签名的可调用 (context, request) . 返回的可调用项本身应返回响应对象。IViewMapper由返回 pyramid.interfaces.IViewMapperFactory .

interface IDict[源代码]
__contains__(k)

返回 True 中频键 k 存在于字典中。

popitem()

从字典中弹出带有k键的项,并将其作为两个元组(k,v)返回。如果k不存在,则引发keyError。

update(d)

用另一个词典更新渲染器词典 d .

setdefault(k, default=None)

返回键的现有值 k 在字典里。如果没有值 k 存在于字典中,设置 default 传递到字典中的k名称下的值。如果字典中已经存在某个值,则返回该值。如果字典中不存在值,则返回默认值

__delitem__(k)

从字典中删除作为渲染器全局字典传递给渲染器的项。

__setitem__(k, value)

在字典中设置键/值对

get(k, default=None)

返回键的值 k 从渲染器字典,或默认值(如果不存在此类值)。

pop(k, default=None)

从字典中弹出k键并返回其值。如果k不存在,并且提供了默认值,则返回默认值。如果k不存在且未提供默认值,则引发keyError。

keys()

从字典返回键列表

__iter__()

返回此字典键的迭代器

items()

返回的列表 [(k,v)] 字典中的对

__getitem__(k)

返回键的值 k 从字典或如果密钥不存在则引发keyError

clear()

清除字典中的所有值

values()

从字典返回值列表

interface IMultiDict[源代码]

延伸: pyramid.interfaces.IDict

一种有序字典,每个键可以有多个值。一个多片式的增加了方法 getallgetonemixedextendadddict_of_lists 到普通字典接口。多层次数据结构用作 request.POSTrequest.GETrequest.params 在一个 Pyramid 应用。

getall(key)

返回与键匹配的所有值的列表(可能是空列表)

mixed()

返回值为单个值的字典,或键/值在此字典中出现多次时的值列表。这类似于通常用于表示Web请求中变量的字典。

extend(other=None, **kwargs)

添加一组键和值,而不是覆盖任何以前的值。这个 other 结构可以是两个元组或字典的列表。如果 **kwargs 传递,它的值 will 覆盖现有值。

add(key, value)

添加键和值,而不是覆盖任何以前的值。

getone(key)

获取一个与键匹配的值,如果找到多个值,则引发keyError。

dict_of_lists()

返回一个字典,其中每个键都与值列表相关联。

interface IResponse[源代码]

表示使用WebOB响应接口的wsgi响应。这个接口引用的一些属性和方法文档 RFC 2616 .

这个接口最著名的实现方式是 pyramid.response.Response 和中的HTTP异常类 pyramid.httpexceptions .

headerlist

响应头列表。

vary

获取、设置和删除vary头。有关变化的更多信息,请参见第14.44节。使用列表转换。

conditional_response_app(environ, start_response)

像正常人一样 __call__ 接口,但检查条件头:

  • 如果修改自(304未修改;仅在GET、HEAD上)
  • 如果不匹配(304未修改;仅在GET、HEAD上)
  • 范围(406部分内容;仅在GET、HEAD上)
request

返回与此响应关联的请求(如果有)。

md5_etag(body=None, set_content_md5=False)

使用主体的MD5哈希(body参数或self.body,如果未给定)为响应对象生成etag。设置self.etag。如果set_content_md5为真,则也设置self.content_md5

使用给定名称取消设置cookie(将其从响应中删除)。

charset

获取/设置字符集(在内容类型中)

age

获取、设置和删除年龄标题。使用int进行转换。有关年龄的更多信息,请参阅RFC 2616第14.6节。

etag

获取、设置和删除etag头。有关ETAG的更多信息,请参见RFC 2616第14.19节。使用实体标记转换。

app_iter

返回响应的应用程序。

如果设置了body,这将从该body(单个项目列表)创建应用程序iter。

content_length

获取、设置和删除内容长度头。有关内容长度的更多信息,请参见RFC 2616第14.17节。使用int转换。

environ

获取/设置与此响应关联的请求环境(如果有)。

copy()

复制响应并返回副本。

content_location

获取、设置和删除内容位置头。有关内容位置的更多信息,请参见RFC 2616第14.14节。

content_language

获取、设置和删除内容语言头。使用列表转换。有关内容语言的更多信息,请参见RFC 2616第14.12节。

__call__(environ, start_response)

WSGI 调用接口,应调用start_response回调,并应返回ITerable

status

状态字符串。

cache_control

获取/设置/修改缓存控制头(RFC 2616第14.9节)

content_md5

获取、设置和删除content-md5头。有关Content-MD5的更多信息,请参见RFC 2616第14.14节。

headers

类似字典的对象中的标题

merge_cookies(resp)

将对此响应设置的cookie与给定的resp对象(可以是任何wsgi应用程序)合并。如果resp是webob.response对象,那么其他对象将被就地修改。

date

获取、设置和删除日期标题。有关日期的更多信息,请参见RFC 2616第14.18节。使用HTTP日期转换。

accept_ranges

获取、设置和删除“接受范围”标题。有关接受范围的更多信息,请参见RFC 2616第14.5节。

content_type

获取/设置内容类型头(或无),不带字符集或任何参数。如果在设置内容类型时包含参数(或;完全包含),则将删除任何现有参数;否则将保留这些参数。

content_range

获取、设置和删除内容范围标题。有关内容范围的更多信息,请参见第14.16节。使用ContentRange对象转换。

content_encoding

获取、设置和删除内容编码头。有关内容编码的更多信息,请参见RFC 2616第14.11节。

cache_expires

获取/设置缓存控件和过期头。这会将响应设置为在设置时经过的秒数内过期。

body

响应的主体,作为str。如果需要,这将在整个应用程序中读取。

content_type_params

内容类型中所有参数的字典。这不是视图,设置为“更改”,否则将不应用对dict的修改。

从客户端删除cookie。请注意,路径和域必须与最初设置cookie的方式匹配。这会将cookie设置为空字符串,max_age=0,以便立即过期。

retry_after

获取、设置和删除“重试后”头。有关重试后的更多信息,请参阅RFC 2616第14.37节。使用HTTP日期或增量秒进行转换。

status_int

作为整数的状态

为响应设置(添加)cookie

www_authenticate

获取、设置和删除www-authenticate头。有关www-authenticate的更多信息,请参阅RFC 2616第14.47节。使用“parse-auth”和“serialize-auth”转换。

allow

获取、设置和删除允许头。使用列表转换。有关允许的更多信息,请参见RFC 2616第14.7节。

encode_content(encoding='gzip', lazy=False)

使用给定的编码对内容进行编码(仅支持gzip和标识)。

last_modified

获取、设置和删除上次修改的头。有关上次修改的更多信息,请参见RFC 2616第14.29节。使用HTTP日期转换。

pragma

获取、设置和删除pragma头。有关pragma的更多信息,请参见RFC 2616第14.32节。

body_file

可用于写入正文的类似文件的对象。如果您传入了列表应用程序,该应用程序将通过写入进行修改。

unicode_body

获取/设置正文的Unicode值(使用内容类型的字符集)

location

获取、设置和删除位置头。有关位置的更多信息,请参见RFC 2616第14.30节。

app_iter_range(start, stop)

返回从响应应用程序构建的新应用程序,该应用程序只提供给定的开始:停止范围。

RequestClass

Alias pyramid.request.Request

content_disposition

获取、设置和删除内容处置头。有关内容处理的更多信息,请参见RFC 2616第19.5.1节。

expires

获取、设置和删除Expires头。有关有效期的更多信息,请参见RFC 2616第14.21节。使用HTTP日期转换。

server

获取、设置和删除服务器头。有关服务器的更多信息,请参阅RFC216第14.38节。

interface IIntrospectable[源代码]

用于配置自省的自省对象。除了下面的方法外,实现这个接口的对象还必须实现Python的所有方法 collections.MutableMapping (字典接口),并且必须是可哈希的。

type_name

描述此自省的文本类型名称

unrelate(category_name, discriminator)

表示有意破坏此不可预测与另一个不可预测之间的关系(与 category_namediscriminator )在行动执行期间。

title

描述此自省的文本标题

discriminator

自省鉴别器(在类别内)(必须是可哈希的)

discriminator_hash

鉴别器的整数哈希

relate(category_name, discriminator)

表示将此不可预测项与另一个不可预测项(与 category_namediscriminator )在行动执行期间。

order

向内省器注册的整数顺序(通常由内省器管理)

action_info

一个IActionInfo对象,表示调用此自省创建的调用方(通常是一个sentinel,直到在self.register期间更新)

register(introspector, action_info)

请用内省器注册此Introspectable。此方法在操作执行期间调用。向内省者添加内省及其关系。 introspector 应该是实现IIntrospector的对象。 action_info 应该是实现接口的对象 pyramid.interfaces.IActionInfo 表示注册此自省的呼叫。此方法实现的伪代码:

def register(self, introspector, action_info):
    self.action_info = action_info
    introspector.add(self)
    for methodname, category_name, discriminator in self._relations:
        method = getattr(introspector, methodname)
        method((i.category_name, i.discriminator),
               (category_name, discriminator))
category_name

自省类别名称

__hash__()

自省必须是可散列的。一个可简介的典型实现 __hash__ 是::

return hash((self.category_name,) + (self.discriminator,))
interface IIntrospector[源代码]
get(category_name, discriminator, default=None)

获取与类别名称和鉴别器(或鉴别器哈希)相关的iIntrospectable discriminator . 如果内省器中不存在,则返回 default

relate(*pairs)

给定任意数量的 (category_name, discriminator) 作为位置参数传递的对,将相关的自省相互关联。必须已通过 .add.add_intr A KeyError 如果这不是真的,将会产生结果。如果任何一对已经与另一对相关联,则不会引发错误。

通常不直接调用此方法,而是通过 pyramid.interfaces.IIntrospector.register()

unrelate(*pairs)

给定任意数量的 (category_name, discriminator) 成对作为位置参数传递,相互取消关联的自省。必须已通过 .add.add_intr A KeyError 如果这不是真的,将会产生结果。如果任何一对尚未与另一对相关,则不会引发错误。

通常不直接调用此方法,而是通过 pyramid.interfaces.IIntrospector.register()

related(intr)

返回与IInProspectable相关的IInProspectable序列 intr . 如果不存在的关系,则返回空序列。

remove(category_name, discriminator)

删除与 category_namediscriminator 从内省者那里,建立内省者参与的任何关系。如果与类别名称和鉴别器相关的自省不存在,则此方法不会引发错误。

categories()

返回此自省者已知的分类名称的排序序列

add(intr)

添加iIntrospectable intr (用)代替 pyramid.interfaces.IIntrospector.add() 当你有一个自定义的不可预测的)。替换使用相同类别/鉴别器注册的任何现有自省。

通常不直接调用此方法,而是通过 pyramid.interfaces.IIntrospector.register()

get_category(category_name, default=None, sort_key=None)

获取表单中的字典序列 [{{'introspectable':IIntrospectable, 'related':[sequence of related IIntrospectables]}}, ...] 其中每个自省都是与 category_name .

如果类别名为 category_name 不存在于内省器中传递的值为 default 将被退回。

如果 sort_keyNone ,序列将按将自省项添加到自省项的顺序返回。否则,sort_key应该是一个接受iIntrospectable并从中返回值的函数(ala key python函数 sorted 可赎回的)

categorized(sort_key=None)

获取窗体中的元组序列 [(category_name, [{{'introspectable':IIntrospectable, 'related':[sequence of related IIntrospectables]}}, ...])] 代表所有已知的自省。如果 sort_keyNone ,每个自省序列将按自省添加到自省的顺序返回。否则,sort_key应该是一个接受iIntrospectable并从中返回值的函数(所有 key python函数 sorted 可赎回的)

interface IActionInfo[源代码]

类,它提供与操作关联的代码内省功能。zcml使用的parserinfo类实现相同的接口。

file

以字符串形式调用代码的操作的文件名

__str__()

返回操作信息的表示形式(如果可能,包括来自文件的源代码)

line

调用代码的操作的文件(作为整数)中的起始行号。这将是 None 如果无法确定该值。

interface IAssetDescriptor[源代码]

描述一个 asset .

absspec()

返回此资产的绝对资产规格(例如 mypackage:templates/foo.pt

isdir()

如果资产是目录,则返回true,否则返回false。

exists()

如果资产存在,则返回“真”,否则返回“假”。

abspath()

返回文件系统中资产的绝对路径。

listdir()

返回目录内容的文件名的ITerable。如果资产不是目录,则引发异常。

stream()

返回用于读取资产内容的输入流。如果资产是目录或不存在,则引发异常。

interface IResourceURL[源代码]
physical_path_tuple

作为元组的资源的物理URL路径。(1.5新)

virtual_path

作为字符串的资源的虚拟URL路径。

physical_path

作为字符串的资源的物理URL路径。

virtual_path_tuple

作为元组的资源的虚拟URL路径。(1.5新)

interface ICacheBuster[源代码]

缓存buster修改URL生成机制 static_url() . 见 缓存中断 .

1.6 新版功能.

__call__(request, subpath, kw)

修改子路径和/或关键字参数,以便在生成URL期间从中计算静态资产URL。

这个 subpath argument is a path of /-delimited segments that represent the portion of the asset URL which is used to find the asset. The `` kw``参数是关键字的字典,将最终传递给 static_url() 用于生成URL。返回值应为 (subpath, kw) 在哪里? subpath 是提供文件的相对URL,并且 kw 是相同的输入参数。应该修改返回值,以便在生成的URL中包含缓存中断令牌。

这个 kw 字典包含传递给的额外参数 static_url() 以及一些可能有用的额外项目,包括:

这个 pathspecrawspec 只有当资产已装入虚拟位置时,使用 pyramid.config.Configurator.override_asset() . 例如,通过调用 request.static_url('myapp:static/foo.png'), the `` PaseScript是 ``myapp:static/foo.png 鉴于 rawspec 可能是 themepkg:bar.png ,假设呼叫 config.override_asset('myapp:static/foo.png', 'themepkg:bar.png') .

interface IViewDeriver[源代码]
options

要传递给的受支持选项列表 pyramid.config.Configurator.add_view() . 此属性是可选的。

__call__(view, info)

从提供的视图派生新视图。

查看选项、程序包信息和注册表位于 info ,的实例 pyramid.interfaces.IViewDeriverInfo .

这个 view 是可调用的接受 (context, request) .

interface IViewDeriverInfo[源代码]

实现此接口的对象将传递给 view deriver 在配置过程中。

registry

创建视图的“当前”应用程序注册表

original_view

正在包装的原始视图对象

settings

与当前应用程序相关的部署设置字典

predicates

视图上活动的谓词列表

exception_only

仅对异常调用视图

options

传递给视图的视图选项,包括未被重写的任何默认值

package

找到视图配置语句的“当前包”