这个 Request 类 (cubicweb.web.request

概述

向Web服务器发送HTTP请求时,将创建请求实例。它包含诸如表单参数、经过身份验证的用户等信息。它是一个非常普遍的对象,在所有框架和应用程序中都使用,因为您可以通过它访问几乎所有资源。

请求表示一个用户查询,无论是通过HTTP还是不通过HTTP(例如,我们还讨论服务器端的RQL查询)。

以下是请求对象(按类别分组)上可用的属性和方法的非详尽列表:

  • Browser control

    • ie_browser :通知浏览器是否属于Internet Explorer系列

  • User and identification

    • user ,的实例 cubicweb.entities.authobjs.CWUser 对应认证用户

  • Session data handling

    • session.data 是会话数据的字典;它可以像普通的Python字典一样被操作

  • Edition (用于版本控制的实用程序):

    • cancel_edition :重置错误URL并清除挂起的操作

    • create_entity :用于创建实体的实用程序(从etype、属性和关系值)

    • datadir_url :返回合并外部资源的URL( CubicWebweb/data 目录加全部 data 已用多维数据集目录)

    • edited_eids :返回在当前HTTP请求下编辑的实体的EID列表

    • eid_rset(eid) :从EID返回结果集的实用程序

    • entity_from_eid(eid) :从给定的EID返回实体实例

    • encoding :返回当前HTTP请求的编码

    • ensure_ro_rql(rql) :确保某个RQL查询是一个数据请求

    • etype_rset

    • form ,包含Web窗体值的字典

    • encoding ,要在响应中使用的字符编码

  • HTTP

    • authmode :返回描述身份验证模式的字符串(http、cookie,…)

    • lang :返回HTTP请求所携带的用户代理/浏览器语言

    • demote_to_html() :在XHTML兼容浏览器的上下文中,这将强制以HTML文档形式发出响应(使用HTTP内容协商)

  • Cookies handling

  • get_cookie() ,返回包含头http“cookie”值的字典

  • set_cookie(cookie, key, maxage=300) ,添加头HTTP Set-Cookie ,默认持续时间最短为5分钟 (maxage =无返回 阶段 当用户关闭浏览器窗口时将过期的cookie)

  • remove_cookie(cookie, key) ,强制值过期

  • URL handling

    • build_url(__vid, *args, **kwargs) :使用params dictionary key/values作为url参数返回绝对url。值会自动引用URL,并且可以指定或猜测要使用的发布方法。

    • build_url_params(**kwargs) :从给定参数返回正确准备的(带引号、分隔符等)字符串

    • url() ,返回HTTP请求的完整URL

    • base_url() ,返回Web应用程序的根URL

    • relative_path() ,返回请求的相对路径

  • Web resource (.css, .js files, etc.) handling

    • add_css(cssfiles) :将给定的CSS资源列表添加到当前HTML标题中

    • add_js(jsfiles) :将给定的javascript资源列表添加到当前HTML标题中

    • add_onload(jscode) :将给定的JScode片段(Unicode字符串)插入当前HTML头中,包装在文档中。就绪(…)或另一个Ajax友好的一次性触发器事件

    • add_header(header, values) :将标题/值对添加到当前HTML标题中

    • status_out :控制响应的HTTP状态

  • And more...

    • set_content_type(content_type, filename=None) ,添加头http“content type”

    • get_header(header) ,返回与HTTP请求的任意头关联的值

    • set_header(header, value) ,在响应中添加任意头

    • execute(*args, **kwargs) ,执行RQL查询并返回结果集

    • property_value(key) ,物业管理 (CWProperty

    • 词典 data 存储数据以在组件之间共享信息 执行请求时

请注意,这个类是抽象的,具体的实现将由 前端 使用了Web。对于在服务器端执行的视图或其他视图,大多数接口 Request 在与客户端关联的会话中定义。

API

我们在上面的概述中给出的元素分三层构建,从 cubicweb.req.RequestSessionBasecubicweb.repoapi.Connectioncubicweb.web.ConnectionCubicWebRequestBase .