Size: 3785
Comment:
|
Size: 3731
Comment: 删除对PageComment2组件的引用
|
Deletions are marked like this. | Additions are marked like this. |
Line 158: | Line 158: |
[[PageComment2]] [:/PageCommentData:PageCommentData] |
http://webpy.org/static/webpy.gif WebPy ~ 超轻量WSGI 应用框架
::-- ZoomQuiet [DateTime(2008-02-24T06:19:46Z)] TableOfContents
web.py 0.3 的食谱格式文档.
1. web.py 食谱
[http://webpy.org/cookbook web.py Cook Book] ~ 中文翻译
1.1. Hello World!
- 命题
怎么使用web.py 写个hello world?
- 解决
1.2. 客户对话~Sessions
- 命题
- 如果在web.py 中运用 客户对话?
- 解决
web.session模块专门进行了支持,以下实例
1 import web
2 urls = (
3 "/count", "count",
4 "/reset", "reset"
5 )
6 app = web.application(urls, locals())
7 session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'count': 0})
8
9 class count:
10 def GET(self):
11 session.count += 1
12 return str(session.count)
13
14 class reset:
15 def GET(self):
16 session.kill()
17 return ""
18
19 if __name__ == "__main__":
20 app.run()
- 对话对象在响应请求句柄前加载,前在请求句柄后保存变更
initializer 参数用以初创对话
1.3. 邮件
- 命题
- 如何通过 web.py 操作邮件?
- 解决
web.sendmail函式用以发送邮件
web.sendmail('[email protected]', '[email protected]', 'subject', 'message')
配置web.config可通过其它邮件服务发送比如:/usr/lib/sendmail.
web.config.smtp_server = 'mail.mydomain.com'
可以在to_address 参数中指定多个地址
web.sendmail('[email protected]' , ['[email protected]', '[email protected]'] , 'subject', 'message')
使用cc和bcc键参数,则声明转发和暗送邮箱地址(使用列表,同樣支持多地址Cc Bcc)
web.sendmail('[email protected]', '[email protected]', 'subject', 'message', cc='[email protected]', bcc='[email protected]')
1.4. 网站排版模板
- 命题::Problem
- 如何在web.py 应用中使用排版模板?
- 解决
- 在应用过程中直接使用
1.5. 文件上传
- 命题
- 即使你对表单上传或是CGI生成不熟悉,文件上传也可以轻易支持的
- 解决
import web urls = ('/upload', 'Upload') class Upload: def GET(self): 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={}) web.debug(x['myfile'].value) # This is the file contents web.debug(x['myfile'].filename) # This is the filename web.redirect('/upload') app = web.application(urls, globals()) if __name__ == "__main__": app.run()
- 探讨
- 有些事儿得注意:
对应表单必须有enctype="multipart/form-data"聲明,否则不会起作用
在 webpy 代码中, 如果将文件作为想导入CGIFieldStorage对象,默认值是必须的(myfile={}部分) .
- 否则将被视作文本文件-- 此例中,你这无法知道文件命了.
1.6. 预备命题
- How to properly use web.background