部署Django至Twisted服务器
2008-11-13 13:12:28 来源:WEB开发网Twisted是一套非常酷的网络开发库,基于python.如果能够自主开发网络服务器的话,
那么这样可以控制更多的东西。前两天搞着看django-on-twisted,这个东东看着挺吸引,>而且支持负载均衡,但是一直搞了几天竟然搞不定。无奈之急,追根朔源,看看有没有直接
可用的方法来将django部署在twisted的服务器上面。
>>测试环境:mandriva2009 + python2.5+django1.0
>>源码:
--见最下面,注意,具体要将demo.settings改为其它项目名.settings
>>注意:在debian下面做测试的时候发现问题,说是项目无法找到,解决办法是在os.envion上面加一句类似sys.path.append('/root/operate')的语句。这样可以让程序找到路径
。
>>后续问题:django-on-twisted更有诱惑力,应该更加把劲研究一下。另外,twisted>库也应该多看一下,在网络开发方面很强大。
>>关于twisted的安装,在mandriva下面通过源码安装好twisted和twisted.web2后,发
现直接在python里面运行的时候有问题,import twisted及twisted.web没问题,但是import twisted.web2有问题。例如python安装路径为/usr/lib/python2.5/site-package/下面,
那么其实这两个包装在两个路径下面,将twisted下面的目录放到Twisted-8.0.egg/下面,>大概是这个样子,具体看实际情况了。
# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
# See LICENSE for details.
"""I am a simple test resource.
"""
import os.path, os
from twisted.web2 import log, wsgi
from twisted.internet import reactor
# This part gets run when you run this file via: "twistd -noy demo.py"
if __name__ == '__builtin__':
from twisted.application import service, strports
from twisted.web2 import server, vhost
#from twisted.web2 import http as channel
from twisted.web2 import channel
from twisted.web import http
#from twisted.internet.ssl import DefaultOpenSSLContextFactory
from twisted.python import util
# Create the resource we will be serving
from django.core.handlers.wsgi import WSGIHandler
from django.core.servers.basehttp import AdminMediaHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'demo.settings'
test = wsgi.WSGIResource(AdminMediaHandler(WSGIHandler()))
# Setup default common access logging
res = log.LogWrapperResource(test)
log.DefaultCommonAccessLoggingObserver().start()
# Create the site and application objects
site = server.Site(res)
application = service.Application("demo")
# Serve it via standard HTTP on port 8080
s = strports.service('tcp:8080', channel.HTTPFactory(site))
s.setServiceParent(application)
# Serve it via HTTPs on port 8081
#s = strports.service('ssl:8081:privateKey=doc/core/examples/server.pem', channel.HTTPFactory(site))
#s.setServiceParent(application)
- ››部署RTX2011服务器应注意的问题
- ››django设置静态文件路径方法
- ››部署SQL AZURE的客户端管理工具,云计算体验之二
- ››部署DHCP常犯的错误
- ››部署额外域控制器,Active Directory系列之四
- ››部署第一个域:Active Directory系列之二
- ››部署 DB2 的 pureScale 特性
- ››部署SMS2003 + SP3
- ››部署 Java Web 服务
- ››部署SQL Server虚拟设备到Hyper-V
- ››部署Application Virtualization 4.5 服务器
- ››部署额外域控制器:深入浅出Active Directory系列...
更多精彩
赞助商链接