読み込んでいます...

hmmm…最近一直在使用Python做开发,但是都是知其然而不知其所以然,所以自己研究一下如何搭建一个web,实际上很简单,不过中文文档不多,就纯当写一个笔记吧,高手路过。

web.py很简单,easy_install web.py就可以安装了,然后在python里import web就可以搭建一个web了,很简单吧,web.py默认就提供了web服务,所以只需要web.py就能跑一个网站了,不过,既然lighttpd专门去做web服务的,为何不直接让lighttpd去做呢。

实际上很简单,我们写一个简单的code.py文件如下。

#!/usr/bin/env python

import web
from controller.home import Home

urls = (‘/.*’, ‘Home’)

app = web.application(urls, globals())

if __name__ == “__main__”:
app.run()

上面的逻辑比较简单,就是定义urls和相应的Handler,定义完成之后我们就可以使用python命令来运行了,如python code.py,这样就起了一个服务,不过一直在python进程中,确实很不爽,所以就选择lighttpd。

装lighttpd很简单,可以自己装,装好之后编写lighttpd配置文件,编写如下(这里我也是了解如何编写lighttpd配置文件)。

#加载一些模块
server.modules = (
“mod_access”,
“mod_alias”,
“mod_accesslog”,
“mod_compress”,
)

server.modules += ( “mod_fastcgi” )
server.modules += ( “mod_rewrite” )

fastcgi.server = (“/routing.py” =>
((
“socket” => “/tmp/fastcgi-wen.socket”,
“bin-path” => “/Users/guojing/dev/webpy/routing.py”,
“max-procs” => 2,
“check-local” => “disable”,
)))
#如果是本机跑的话一定要定义check-local为disable
url.rewrite-once = (
“^/favicon.ico$” => “/favicon.ico”,
“^/(.*)$” => “/routing.py/$1″,
)
#定义根文档路径
server.document-root = “/Users/guojing/dev/webpy/htdocs”

编写完成后就可以使用lighttpd -f lighttpd.conf来启动lighttpd了。

PS:如果启动不成功,需要将routing.py设置相应的权限。

chmod 755 lighttpd.conf

代码下载:
webpy

578路过 2评论 Python 阅读全文..
  1. 置顶的更新,文章汇总 : GuoJing's Blog | 用心对待每一行代码 @

    [...] 笔记-Pylons0.97升级到1.0 笔记-Mac OS X lighttpd+web.py 部署网站 [...]

  2. 小贝 @

    不错,学习了。。。。

:-D :-? 8) :cry: 8-O :lol: :-x :-| :?: :-P :oops: :roll: :( :) :-o :wink: more »