Skip to content

bennr01/txwebutils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

txwebutils - utilities for twisted.web

PyPI version Build Status GitHub license

What is txwebutils?

txwebutils is a pure-python library containing various utility functions and implementations for the twisted.web web framework. It is the result of combining useful code from my various other projects.

Features

  • support for unicode string results for twisted.web.resource.Resource.render_* methods.
  • support for deferreds results for twisted.web.resource.Resource.render_*.
  • utility functions to get the URL parameters in unicode.
  • A custom cross-site authentication implementation using twisted.cred.

Examples

# -*- coding: utf-8 -*-
"""
Example for @unicode_response.

The @unicode_response decorator allows both unicode and/or deferred results in render_* methods.
"""
from twisted.internet import defer
from twisted.web.resource import Resource
from txwebutils import unicode_response


class UnicodeRespondingResource(Resource):
    """
    This resource serves a unicode string on a GET request.
    
    @unicode_response tries its best to guess the encoding correctly.
    """
    @unicode_response
    def render_GET(self, request):
        return u"This is a unicode string: äöüß"

class BinaryRespondingResource(Resource):
    """
    This resource serves a binary string on a GET request.
    This shows that you can return whatever string type you desire.
    """
    @unicode_response
    def render_GET(self, request):
        return b"This is a binary string"

class DeferredResultingResource(Resource)
	"""
    This resource serves a deferred which fires with a unicode string on a GET request.
    """
    @unicode_response
    def render_GET(self, request):
        return defer.succeed(u"This is a unicode string: äöüß")
    
class InlineCallbacksResource(Resource)
	"""
    This resource uses 'twisted.internet.defer.inlineCallbacks'
    """
    @unicode_response
    @defer.inlineCallbacks
    def render_GET(self, request):
        s = yield defer.succeed(u"This is a unicode string: äöüß")
        defer.returnValue(s)

About

utilities for twisted.web

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages