刚接触python的轻量级框架web.py,但在使用session时总是无效(现象就是在sessions目录中每次请求都会生成一个新的文件),经过大量的google还是没有找到解决的方案,最后尝试了一下把应用集成到虚拟主机上下面,解决该问题.特分享
1. 下载mod_wsgi.so http://code.google.c om/p/modwsgi/wiki/Do wnloadTheSoftware?tm =2
下载 http://code.google.c om/p/modwsgi/downloa ds/detail?name=mod_w sgi-win32-ap22py26-3 .3.so
2. copy mod_wsgi-win32-ap22py26-3.3.so 到 apache/modules目录中
3. 修改apache配置文件httpd.conf 在文件尾部添加
LoadModule wsgi_module modules/mod_wsgi.so
AddType text/html .py
#Include conf/extra/httpd-vhosts.conf -> Include conf/extra/httpd-vhosts.conf
4. 添加虚拟主机
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@xxx.com
DocumentRoot d:/www
ServerName webpy.net
ServerAlias www.webpy.net
WSGIScriptAlias /webpy d:/www/webpy-app/code.py/
Alias /webpy/static d:/www/webpy-app/static/
<Directory d:/www/webpy-app/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
5. code.py源码
import web
import os
web.config.debug = False
urls = (
'/.*', 'hello',
)
app = web.application(urls, globals())
curdir = os.path.dirname(__file__)
session = web.session.Session(app, web.session.DiskStore(curdir + '/'+ 'sessions'),initializer={'count': 0})
class hello:
def GET(self):
session.count += 1
return "Hello, world. count: %d"%session.count
application = app.wsgifunc()
6. 重启apache
7. 在浏览器中输入 http://www.webpy.net /webpy/
然后查看计数器
1. 下载mod_wsgi.so http://code.google.c
下载 http://code.google.c
2. copy mod_wsgi-win32-ap22py26-3.3.so 到 apache/modules目录中
3. 修改apache配置文件httpd.conf 在文件尾部添加
LoadModule wsgi_module modules/mod_wsgi.so
AddType text/html .py
#Include conf/extra/httpd-vhosts.conf -> Include conf/extra/httpd-vhosts.conf
4. 添加虚拟主机
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@xxx.com
DocumentRoot d:/www
ServerName webpy.net
ServerAlias www.webpy.net
WSGIScriptAlias /webpy d:/www/webpy-app/code.py/
Alias /webpy/static d:/www/webpy-app/static/
<Directory d:/www/webpy-app/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
5. code.py源码
import web
import os
web.config.debug = False
urls = (
'/.*', 'hello',
)
app = web.application(urls, globals())
curdir = os.path.dirname(__file__)
session = web.session.Session(app, web.session.DiskStore(curdir + '/'+ 'sessions'),initializer={'count': 0})
class hello:
def GET(self):
session.count += 1
return "Hello, world. count: %d"%session.count
application = app.wsgifunc()
6. 重启apache
7. 在浏览器中输入 http://www.webpy.net
然后查看计数器