Web.py Cookbook 简体中文版 - 保存上传的文件

justjavac 发表于 2012-04-19

问题

上传文件,并将其保存到预先设定的某个目录下。

方法

import web urls = ('/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="multipart/form-data" action=""> <input type="file" name="myfile" /> <br/> <input type="submit" /> </form> </body></html>""" def POST(self): x = web.input(myfile={}) filedir =...

Web.py Cookbook 简体中文版 - 提供静态文件

justjavac 发表于 2012-04-19

问题

如何在web.py自带的web server中提供静态文件访问?

解法

在当前应用的目录下,创建一个名为static的目录,把要提供访问的静态文件放在里面即可。

例如, 网址 http://localhost/static/logo.png 将发送 ./static/logo.png 给客户端。

Web.py Cookbook 简体中文版 - 用cherrypy提供SSL支持

justjavac 发表于 2012-04-19

问题

如何用内置的cheerypy提供SSL支持?

解法

import web

from web.wsgiserver import CherryPyWSGIServer

CherryPyWSGIServer.ssl_certificate = "path/to/ssl_certificate"
CherryPyWSGIServer.ssl_private_key = "path/to/ssl_private_key"

urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello:
    def GET(self):
        return 'Hello, world!'

if __name__ == "__main__":
    app.run()

Web.py Cookbook 简体中文版 - 整合 SQLite UDF (用户定义函数) 到 webpy 数据库层

justjavac 发表于 2012-04-19

问题:

用户在邮件列表中询问,我把它放在这里作为将来使用和参考。

解决:

您可以添加到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() >>> cur.execute("select 1, -1")...

Web.py Cookbook 简体中文版 - sqlalchemy

justjavac 发表于 2012-04-19

问题

如何在web.py中使用sqlalchemy

方案

创建一个钩子并使用sqlalchemy的 scoped session (http://www.sqlalchemy.org/docs/05/session.html#unitofwork_contextual)

import string import random import web from sqlalchemy.orm import scoped_session, sessionmaker from models import * urls = ( "/", "add", "/view", "view" ) def load_sqla(handler): web.ctx.orm = scoped_session(sessionmaker(bind=engine)) try: return handler()...