摘要:介绍有时候,浏览器会通过post发送很多数据。在webpy,你可以这样操作。代码class RequestHandler(): def POST(): data = web.data() # 通过这个方法可以取到数据 阅读全文
Web.py Cookbook 简体中文版 - 跳转(seeother)与重定向(redirect)
2012-11-23 11:10 by justjavac, 373 阅读, 0 推荐, 收藏, 编辑
摘要:web.seeother 和 web.redirect问题在处理完用户输入后(比方说处理完一个表单),如何跳转到其他页面?解法class SomePage: def POST(self): # Do some application logic here, and then: raise web.seeother('/someotherpage')POST方法接收到一个post并完成处理之后,它将给浏览器发送一个303消息和新网址。接下来,浏览器就会对这个新网址发出GET请求,从而完成跳转。注意:web.seeother和web.redirect不支持0.3以... 阅读全文
Web.py Cookbook 简体中文版 - sqlalchemy
2012-11-23 11:10 by justjavac, 269 阅读, 0 推荐, 收藏, 编辑
摘要:问题如何在web.py中使用sqlalchemy方案创建一个钩子并使用sqlalchemy的scoped session(http://www.sqlalchemy.org/docs/05/session.html#unitofwork_contextual)import stringimport randomimport webfrom sqlalchemy.orm import scoped_session, sessionmakerfrom models import *urls = ( "/", "add", "/view", 阅读全文
Web.py Cookbook 简体中文版 - 提供静态文件 (诸如js脚本, css样式表和图象文件)
2012-11-23 11:09 by justjavac, 344 阅读, 0 推荐, 收藏, 编辑
摘要:问题如何在web.py自带的web server中提供静态文件访问?解法在当前应用的目录下,创建一个名为static的目录,把要提供访问的静态文件放在里面即可。例如, 网址http://localhost/static/logo.png将发送./static/logo.png给客户端。 阅读全文
Web.py Cookbook 简体中文版 - 用cherrypy提供SSL支持
2012-11-23 11:09 by justjavac, 213 阅读, 0 推荐, 收藏, 编辑
摘要:问题如何用内置的cheerypy提供SSL支持?解法import webfrom web.wsgiserver import CherryPyWSGIServerCherryPyWSGIServer.ssl_certificate = "path/to/ssl_certificate"CherryPyWSGIServer.ssl_private_key = "path/to/ssl_private_key"urls = ("/.*", "hello")app = web.application(urls, glob 阅读全文
Web.py Cookbook 简体中文版 - 整合 SQLite UDF (用户定义函数) 到 webpy 数据库层
2012-11-23 11:09 by justjavac, 367 阅读, 0 推荐, 收藏, 编辑
摘要:问题:用户在邮件列表中询问,我把它放在这里作为将来使用和参考。解决:您可以添加到Python函数到SQLite,并让它们在您的查询调用。示例:>>> import sqlite3 as db>>> conn = db.connect(":memory:")>>> conn.create_function("sign", 1, lambda val: val and (val > 0 and 1 or -1))>>> cur = conn.cursor()>>> 阅读全文
Web.py Cookbook 简体中文版 - 保存上传的文件
2012-11-23 11:08 by justjavac, 222 阅读, 0 推荐, 收藏, 编辑
摘要:问题上传文件,并将其保存到预先设定的某个目录下。方法import weburls = ('/upload', 'Upload')class Upload: def GET(self): web.header("Content-Type","text/html; charset=utf-8") return """<html><head></head><body><form method="POST" enctype=&q 阅读全文
Web.py Cookbook 简体中文版 - 在webpy中使用Cheetah模板引擎
2012-11-23 11:07 by justjavac, 297 阅读, 0 推荐, 收藏, 编辑
摘要:问题:怎样在webpy中使用Cheetah模板引擎?解决:您需要先安装webpy(0.3)和Cheetah:http://www.cheetahtemplate.org/. 然后尝试使用下面的代码段:# encoding: utf-8# File: code.pyimport webfrom web.contrib.template import render_cheetahrender = render_cheetah('templates/')urls = ( '/(first)', 'first', '/(second)', 阅读全文
Web.py Cookbook 简体中文版 - 使用子应用
2012-11-23 11:07 by justjavac, 92 阅读, 0 推荐, 收藏, 编辑
摘要:问题如何在当前应用中包含定义在其他文件中的某个应用?解法在blog.py中:import weburls = ( "", "reblog", "/(.*)", "blog")class reblog: def GET(self): raise web.seeother('/')class blog: def GET(self, path): return "blog " + pathapp_blog = web.application(urls, locals())当前的主应用c 阅读全文
Web.py Cookbook 简体中文版 - 如何流传输大文件
2012-11-23 11:07 by justjavac, 281 阅读, 0 推荐, 收藏, 编辑
摘要:问题如何流传输大文件?解法要流传输大文件,需要添加传输译码(Transfer-Encoding)区块头,这样才能一边下载一边显示。否则,浏览器将缓冲所有数据直到下载完毕才显示。如果这样写:直接修改基础字符串(例中就是j),然后用Yield返回--是没有效果的。如果要使用Yield,就要向对所有内容使用yield。因为这个函式此时是一个产生器。(注:请处请详看Yield文档,在此不做过多论述。)例子# Simple streaming server demonstration# Uses time.sleep to emulate a large file readimport webimpor 阅读全文