这个 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( CubicWeb 的 web/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.RequestSessionBase
, cubicweb.repoapi.Connection
和 cubicweb.web.ConnectionCubicWebRequestBase
.