#865 closed enhancement (worksforme)
twisted.web handler
| Reported by: | Owned by: | Jonas Borgström | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | general | Version: | devel |
| Severity: | normal | Keywords: | |
| Cc: | Branch: | ||
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description
The attached patch adds a twisted.web handler; auth and file uploads are currently non-functional. Sample .rpy and .tac (standalone) scripts are also attached.
Attachments (5)
Change History (16)
by , 21 years ago
comment:1 by , 21 years ago
| Milestone: | → 0.9 |
|---|---|
| Status: | new → assigned |
Cool, I'll apply the patch and give you commit rights as soon as 0.8 is released and the 0.8-stable branch is created.
comment:2 by , 21 years ago
It's been a while since 0.8 was released, but there doesn't seem to have been any progress here; what's happening?
comment:3 by , 21 years ago
I've attached an update version of the patch with htdigest auth support. Still no file upload support, because twisted.web throws away the filename when processing file uploads (grr).
comment:4 by , 21 years ago
The patch needs updating to the recently refactored web layer. As an advantage, you can know reuse DigestAuth from the trac.web.standalone module, instead of copying the code over.
comment:5 by , 21 years ago
I'm attaching a newly updated patch, that now uses twisted.web2 - file uploads are still broken, pending file upload support in web2.
comment:6 by , 20 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | assigned → closed |
I think we'll hold off on adding new server frontends until we've added WSGI support, which should make it easier to add and maintain new frontends. See: #1582.
comment:7 by , 20 years ago
| Resolution: | wontfix |
|---|---|
| Status: | closed → reopened |
I access trac as a WSGI resource of my twisted.web2 HTTP server, and everything seems to be working fine. The only exception is bug #2913, which is a result of trac running in a persistent Python process when accessed via tracd or WSGI.
Here's the code I use:
# Access Trac from Twisted Web2 via WSGI
# This snippet of fairly obvious code written by Edwin A. Suominen
# and hereby dedicated to the public domain.
from twisted.web2.wsgi import WSGIResource
import trac.web.main
class TracResource(WSGIResource):
"""
I provide a Trac site for a specified path via a WSGI gateway.
The WSGI application is L{trac.web.main.dispatch_request}, the 'Main entry
point for the Trac web interface.' It has the following required
WSGI-compliant parameters:
environ: the WSGI environment dict
start_response: the WSGI callback for starting the response
"""
def __init__(self, path):
self.path = path
WSGIResource.__init__(self, self.tracApplication)
def tracApplication(self, environ, start_response):
"""
This method is the callable object that provides access to my
particular Trac environment via WSGI.
"""
environ['trac.env_path'] = self.path
return trac.web.main.dispatch_request(environ, start_response)
comment:9 by , 19 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | reopened → closed |
Replying to edsuom:
I access trac as a WSGI resource of my twisted.web2 HTTP server, and everything seems to be working fine. The only exception is bug #2913, which is a result of trac running in a persistent Python process when accessed via tracd or WSGI.
Well, the Twisted project now uses Trac as a WSGI application and #2913, so I think it's safe to say this is working.
follow-up: 11 comment:10 by , 19 years ago
Is there a recipe somewhere about how to use Trac with Twisted?
comment:11 by , 19 years ago
Replying to cboos:
Is there a recipe somewhere about how to use Trac with Twisted?



Sample .rpy file, place in existing t.w server