WEB开发网
开发学院软件开发Python 部署Django至Twisted服务器 阅读

部署Django至Twisted服务器

 2008-11-13 13:12:28 来源:WEB开发网   
核心提示:Twisted是一套非常酷的网络开发库,基于python.如果能够自主开发网络服务器的话,部署Django至Twisted服务器,那么这样可以控制更多的东西,前两天搞着看django-on-twisted,将twisted下面的目录放到Twisted-8.0.egg/下面,>大概是这个样子,这个东东看着挺吸引,&

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)

Tags:部署 Django Twisted

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接