Web.py Cookbook 简体中文版 - db.upate 数据更新

justjavac 发表于 2012-04-19

问题

向数据库中更新数据。

解决方案

import web

db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='')
db.update('mytable', where="id = 10", value1 = "foo")

查询 中有更多关于可用参数的信息。

该更新操作会返回更新的影响行数。

Web.py Cookbook 简体中文版 - 怎样使用数据库事务处理

justjavac 发表于 2012-04-19

问题:

怎样使用数据库事务处理?

解决:

数据库对象有一个方法“transaction”,将启动一个新的事务,并返回事务对象。这个事务对象可以使用commit提交事务或rollback来回滚事务。

import web db = web.database(dbn="postgres", db="webpy", user="foo", pw="") t = db.transaction() try: db.insert('person', name='foo') db.insert('person', name='bar') except: t.rollback() raise else: t.commit()

在python 2.5+以上的版本,事务同样可以在段中使用:

from __future__ import with_statement db = web.databse(dbn="postgres", db="webpy", user="foo", pw="") with...

Web.py Cookbook 简体中文版 - Testing with Paste and Nose

justjavac 发表于 2012-04-19

Problem

You want to test your web.py application.

Solution

from paste.fixture import TestApp from nose.tools import * from code import app class TestCode(): def test_index(self): middleware = [] app = TestApp(app.wsgifunc(*middleware)) r = app.get('/') assert_equal(r.status, 200) r.mustcontain('Hello, world!')
...

Web.py Cookbook 简体中文版 - How to use templates on Google App Engine

justjavac 发表于 2012-04-19

问题

如何在 Google App Engine 上使用模板

解答

web.py templetor 把模板编译成 python 字节码,这需要访问标准库中的 parser 模块。不幸的是,由于安全原因 GAE 禁用了这个模块。

为了克服这个状况,web.py 支持把模板编译成 python 代码,从而避免在 GAE 上使用原来的模板。web.py 确保在应用这种方法的时候模板中的代码不需要任何改变。

为了编译一个文件夹中所有的模板(一旦有模板改动,就需要重新运行),运行:

$ python web/template.py --compile templates

以上命令把 templates/ 目录下的模板文件递归地全部编译,并且生产 __init__.py, ‘web.template.render 重新编写过,它将视 templates 为一个 python...

Web.py Cookbook 简体中文版 - 在webpy中使用Mako模板引擎

justjavac 发表于 2012-04-19

问题

如何在webpy中使用Mako模板引擎?

解决方案

首先需要安装Mako和web.py(0.3):http://www.makotemplates.org/ 然后尝试下面的代码:

 # encoding: utf-8 # File: code.py import web from web.contrib.template import render_mako urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals(), autoreload=True) # input_encoding and output_encoding is important for unicode #...