我一直在想,如果django应用抛开使用通用的web服务器,而使用一些自己开发的或者是一些有特性的web服务器,是一件有意思的事情。昨天我介绍了使用django在cherrypy web server和nginx下部署的方式,现在我介绍一个项目,叫做django-evserver.看一下这个模块如何作为django web server.
1)下载django-evserver,项目地址:目前只能通过svn来下载;
2).下载libevent库,~provos/libevent/,注意,在我试的版本中要采用下载的库是libevent-1.4.1-beta.tar.gz.别的文件安装有问题;
3).解开libevent,并安装,./configure,make,make install.然后ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2,当然,也可以在./configure的时候指定目录 --prefix=/usr/lib.
4).将下载的django-evserver-read-only目录放至/usr/lib/python2.5/site-package/下面。并将目录名由django-evserver-read-only改成django_evserver.
5).在你的工程的setting中加入django_evserver,例如:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django_evserver', # THIS LINE ENABLES django-evserver
'chat.chatapp',
)
6).检测一下evserver服务是否可用:
$ ./manage.py help
manage.py
[options] [args]
Django command line tool, version 0.97-pre-SVN-unknown
Type 'manage.py help ' for help on a specific subcommand.
Available subcommands:
adminindex
createcachetable
dbshell
diffsettings
dumpdata
evserver ### yay! evserver seems to be enabld
flush
inspectdb
7).运行:./manage evserver 127.0.0.1:8000
8).存在的一个问题:admin界面显示css消失,只显示纯文本。
>>在urls.py中加入地址: (r'^media/(?P.*)$', 'django.views.static.serve', {'document_root':'./template/admin/media'}),
>>注:./temlate下面的admin目录来自于/usr/lib/python2.5/site-packages/django/contrib/admin/.
>>这样一来,就解决了这个问题。
9).libevent是一个事件触发的网络库,跨平台。
阅读(2071) | 评论(0) | 转发(0) |