摘要:

ctx用于存取web请求的环境变量,基于ThreadedDict类进行实例化。ThreadedDict类可实例化字典类型的对象,该对象某些属性可用于存取处理线程的id。 这样字典化实例的线程池使得web访问的并发控制很好地解决,而且线程之间非常独立。

范例:

 class example:
def GET(self):
referer = web.ctx.env.get('HTTP_REFERER', 'http://google.com')
raise web.seeother(referer)

上述代码使用web.ctx.env来获取HTTP_REFERER这一环境变量。如果没有值,则默认会返回‘http://google.com‘,然后重定向到该网站。

web.ctx可以通过loadhook(挂载)的方式来进行设置。例如,每当service收到一个web请求,Session数据都会存放在web.ctx中。因为web.ctx是线程安全的,这时候就可以使用该Session数据(该数据必须是python中可识别的数据类型)。

ctx中包含的数据:

environ 即 env 一个包含标准WSGI 环境变量格式的字典
home web应用的根目录,同时包含任何外部应用引用时的显示名,例如,http://example.org/admin
homedomain ? (显示为协议+主机) http://example.org
homepath 用户请求的path,即homepath + path = 用户完整的请求地址,处理时会与urls进行交互
host 主机名,包含端口(默认8080)
ip 发起web请求的用户ip
method 发起的web请求方法
path 用户请求部分的path,例如,/logon/authenticated,但是对于挂载的子应用,则不会显示子应用的名称。例如,主应用myapp.py,子应用subapp.py。子应用中有页面/read/blogs,则ctx中只会返回example.org/read/blogs而不是example.org/subapp/read/blogs
protocol 请求遵循的协议http/https/ftp...
query url中请求的条件
fullpath 即 path+query 完整的请求地址,包含请求的页面及请求的条件

响应状态:

  • status - http状态码,(默认200,ok )异常响应码:401 未授权
  • headers - 包含请求头(http header)信息的两个元组
  • output - 包含响应实体的字符串

Web.py 框架学习笔记 - ctx的更多相关文章

  1. Web.py 框架学习笔记 - URL处理

    最近由于工作需要开始学习基于python的web应用框架web.py.为了方便学习,将学习心得逐日记下以便日后复习. URL 模板: web.py提供了一套url处理的模板,在python工程中,只需 ...

  2. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

  3. 【Python】【Web.py】详细解读Python的web.py框架下的application.py模块

    详细解读Python的web.py框架下的application.py模块   这篇文章主要介绍了Python的web.py框架下的application.py模块,作者深入分析了web.py的源码, ...

  4. SSM框架学习笔记_第1章_SpringIOC概述

    第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...

  5. j2ee开发之Spring2.5框架学习笔记

    Spring 2.5框架学习笔记 1.是一个开源的控制反转IOC和面向切面AOP的容器框架 2.IOC控制反转 public class PersonServiceBean { private Per ...

  6. Spring框架学习笔记(5)——Spring Boot创建与使用

    Spring Boot可以更为方便地搭建一个Web系统,之后服务器上部署也较为方便 创建Spring boot项目 1. 使用IDEA创建项目 2. 修改groupid和artifact 3. 一路n ...

  7. phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构   pha ...

  8. Yii框架学习笔记(二)将html前端模板整合到框架中

    选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...

  9. JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

    前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...

随机推荐

  1. [补档][ZJOI2007] 报表统计

    [ZJOI2007] 报表统计 题目 传送门 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一. 经过仔细观察,小Q发现统计一 ...

  2. 网络爬虫Web开始

    一.介绍 该程序主体是<Python核心编程第二版>例20.2.本篇会修改部分代码及添加了相关注释. ps:该书该例程不能直接运行,需要修改. 二.功能 网络爬虫crawl.py抓取web ...

  3. Javascript DOM 编程艺术———总结-2

    第三章: 一,DOM: Document(文档) Object(对象):用户定义对象,内建对象,宿主对象. Model(模型) 二,节点: 元素节点:诸如:<body> <p> ...

  4. java实现网页爬虫

    接着上面一篇对爬虫需要的java知识,这一篇目的就是在于网页爬虫的实现,对数据的获取,以便分析. -----> 目录:   1.爬虫原理 2.本地文件数据提取及分析 3.单网页数据的读取 4.运 ...

  5. sqlite 的基本使用1

    mac 下自带的sqlite3 直接在终端键入 sqlite3 即进入 sqlite的交互界面 1,创建数据库 sqlite3 命令 被用来创建新的数据库 比如sqlite3 mydb,即创建了一个m ...

  6. HighGUI 图形用户界面

    参考 自opencv3编程入门一书 图形用户界面主要内容包括图像载入,显示和输出到文件 在opencv1.0时代 图像的存储结构体都是IplImage × 在2.0以后,采用Mat 类作为图像存储的数 ...

  7. JavaScript中的不同逻辑算法结合操作解决实际多重问题以及常用函数类型

    数组去重+快速排序 //老数组var arr1 = [1,2,2,3,8,6,6,4,5,5];//定义新数组var arr2 = [ ];内部可运用布尔型进行判断数组的唯一性 for(i=0;i&l ...

  8. Mac OS X下安装和配置Maven

    1.下载Maven 打开Maven官网下载页面:http://maven.apache.org/download.cgi 下载:apache-maven-3.5.0-bin.tar.gz 解压下载的安 ...

  9. python2 接口测试一般方法.

    接口测试方法: 1. import requests 2. 创建一个url变量,并经访问的地址赋值给它.(包括端口后面的 接口的部分) 例如: url = "http://124.193.9 ...

  10. rpm中config,config(noreplace)区别

    问题描述 最近才知道公司安装新版本,不是rpm -e卸载再rpm -ivh安装,而是rpm -Uvh直接升级,导致了安装包里有些文件没有覆盖原有文件. 解决方法 找config,config(nore ...