bottle框架学习(2):变量定义等

try: from simplejson import dumps as json_dumps, loads as json_lds
except ImportError: # pragma: no cover
    try: from json import dumps as json_dumps, loads as json_lds
    except ImportError:
        try: from django.utils.simplejson import dumps as json_dumps, loads as json_lds
        except ImportError:
            def json_dumps(data):
                raise ImportError("JSON support requires Python 2.6 or simplejson.")
            json_lds = json_dumps

# We now try to fix 2.5/2.6/3.1/3.2 incompatibilities.
# It ain‘t pretty but it works... Sorry for the mess.

py   = sys.version_info
py3k = py >= (3, 0, 0)
py25 = py <  (2, 6, 0)
py31 = (3, 1, 0) <= py < (3, 2, 0)

# Workaround for the missing "as" keyword in py3k.
def _e(): return sys.exc_info()[1]

# Workaround for the "print is a keyword/function" Python 2/3 dilemma
# and a fallback for mod_wsgi (resticts stdout/err attribute access)
try:
    _stdout, _stderr = sys.stdout.write, sys.stderr.write
except IOError:
    _stdout = lambda x: sys.stdout.write(x)
    _stderr = lambda x: sys.stderr.write(x)

这段代码,主要是有三块:

第一部分,定义json的dumps和loads,尝试各个模块,如果都没有,就报错

第二部分,确定python的版本

第三部分通过lambda定义

_stdout和_stderr
 _stdout = lambda x: sys.stdout.write(x)

可以理解为:    def _stdout(x):  sys.stdout.write(x)
时间: 2024-11-03 21:56:33

bottle框架学习(2):变量定义等的相关文章

bottle框架学习(一)之安装以及路由的使用

安装bottle: [[email protected] bottle]#  yum install python-devel python-setuptools -y [[email protected] bottle]#  easy_install pip [[email protected] bottle]#  pip install bottle 官方文档:http://www.bottlepy.org/docs/dev/index.html 静态路由 [[email protected

bottle框架学习(八)之Mysql数据库的操作

MySQLdb 是用于Python连接Mysql数据库的接口. 安装MySQLdb [[email protected] bottle]# yum install MySQL-python –y 如果使用编译安装请到这里下载安装包https://pypi.python.org/pypi/MySQL-python并执行以下命令 [[email protected] bottle]# gunzip  MySQL-python-1.2.3.tar.gz [[email protected] bottl

bottle框架学习(四)之模版进阶使用

内嵌语句 只要在{{...}} 中的Python 语句返回一个字符串或有一个字符串的表达形式,它就是一个有效的语句. >>>from bottle import template >>>template('hello {{name}}', name='ju') u'helloju' >>>template('hello {{name if name else "world!"}}', name=None) u'helloworld!

bottle框架学习(五)之文件的下载与上传

下载文件 Bottle文件下载还是使用static_file这个模块,只是多加了一个参数:download=True,还是看例子吧! [[email protected]]# cat download.py #!/usr/bin/envpython #coding=utf-8 frombottle import route,run,view,static_file   @route('/download/<filename:path>') defdownload(filename):     

bottle框架学习(七)之session的使用

Bottle 自身并没有提供Session的支持,,可以使用beaker中间件或自己实现.Beaker是一个缓存和会话的库,与Web 应用程序和独立的Python 脚本及应用程序一起使用.它是WSGI 的中间件,能够很简单地嵌入,与基于 WSGI 的 Web 应用程序一起使用,并且缓存修饰器对于任何基于 Python 的应用程序都是容易使用的. beaker文档:http://beaker.readthedocs.org/en/latest/index.html 安装beaker [[email

bottle框架学习(二)之HTTP请求

HTTP 请求方法 HTTP 协议有很多种请求方法.route默认使用GET方法,只响应GET请求.method参数可以给route()函数指定使用哪种方法.或用get(),post(),put()或delete()等函数来代替route()函数. POST 方法一般用于HTML 表单的提交.下面是一个使用POST 来实现用户登录的例子: [[email protected]]# cat login.py #!/usr/bin/envpython #coding=utf-8 from bottl

bottle框架学习(三)之模版的使用

模板的基本使用 Bottle内置了一个快速强大的模板引擎,称为SimpleTemplate模板引擎.可通过template() 函 数或view()修饰器来渲染一个模板.只需提供模板的名字和传递给模板的变量.如下: [[email protected]]# tree . . ├── templ.py └── views └── hello.tpl 1directories, 2files [[email protected]]# cat templ.py  #!/usr/bin/envpytho

bottle框架学习(六)之错误与重定向

[[email protected] bottle]# cat error.py #!/usr/bin/env python #coding=utf-8 from bottle importroute,run,error,abort,redirect   #访问页面出错,Bottle会显示一个默认的错误页面,提供足够的debug信息.你也可以使用error()函数来自定义你的错误页面 @error(404) def error404(error):    return '访问出错啦!' #一般返

GoLang学习之变量定义和初始化

变量命名原则 go语言的变量名有字母数字和下划线组成,首字母不能为数字,但是字母不仅仅只限于英文字母,所有的UTF-8字符都是可以的. 变量声明和初始化方式 使用var关键字 var a int = 9 var str string ="jisuanji" 注意,Go语言变量类型放在变量名之后! 如果上面的代码段没有初始化值,那么变量就会被初始化为对应类型的零值. var a int 这个代码片段声明了一个int类型变量a,并把a初始化为int零值,即0. 忽略类型 这种声明和初始化变