web.py 0.3 新手指南 - 使用db.query进行高级数据库查询

justjavac 发表于 2012-04-19

问题:

您要执行的SQL语句如:高级的联接或计数。

解决:

webpy不会尝试为您和您的数据库建立层。相反,它试图以方便的通用任务,走出自己的方式,当您需要做的更高级的主题。执行高级的数据库查询是没有什么不同。例如:

import web db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='') results = db.query("SELECT COUNT(*) AS total_users FROM users") print results[0].total_users # -> prints number of entries in 'users' table

或者是,使用一个JOIN示例:

import web db = web.database(dbn='postgres', db='mydata',...

web.py 0.3 新手指南 - 多数据库使用

justjavac 发表于 2012-04-19

问题

如何在单独项目中应用多数据库?

解决办法

webpy 0.3 支持多数据库操作,并从web模块中移走数据库部分, 使其成为一个更典型的对象. 例子如下:

import web

db1 = web.database(dbn='mysql', db='dbname1', user='foo')
db2 = web.database(dbn='mysql', db='dbname2', user='foo')

print db1.select('foo', where='id=1')
print db2.select('bar', where='id=5')

增加, 更新, 删除和查询的方法跟原有单数据库操作类似.

当然, 你可以使用host和port参数来指定服务器地址和监听端口.

Web.py Cookbook 简体中文版 - 使用Apache + mod_wsgi部署webpy应用

justjavac 发表于 2012-04-19

下面的步骤在Apache-2.2.3 (Red Hat Enterprise Linux 5.2, x86_64),mod_wsgi-2.0中测试通过。(译者注:本人在Windows2003 + Apache-2.2.15 + mod_wsgi-3.0也测试通过)

注意:

  • 您可以使用您自己的项目名称替换’appname’。
  • 您可以使用您自己的文件名称替换’code.py’。
  • /var/www/webpy-app 为包含您的code.py的文件夹目录路径。
  • /var/www/webpy-app/code.py 是您的python文件的完整路径。

步骤:

  • 下载和安装mod_wsgi从它的网站:

http://code.google.com/p/modwsgi/. 它将安装一个’.so’的模块到您的apache 模块文件夹,例如:

 /usr/lib64/httpd/modules/
  • 在httpd.conf中配置Apache 加载 mod_wsgi模块和您的项目:

     LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias...