|
Andreas Sommer
AndiDog at web.de
Wed Jul 1 09:21:32 EDT 2009
The only "simple" solution is the following output filter:
def outputfilter(filter):
str = filter.read()
filter.write(str.lstrip())
filter.close()
Can't that be done easier, i.e. without Apache configuration?
Andreas Sommer wrote:
> I want to include a common "header" file in each of my PSP files
> (which should produce XML), for example
>
> <%@ include file="common.inc" %><%
> req.content_type = "text/xml"
> # output some XML code here
> %>
>
>
> The "common.inc" file begins with <% and ends with %>, but because
> editors automatically add a newline, it ends with a newline character.
> My problem is that the XML output follows after the newline character,
> but *must* be at the very beginning of the output - just try opening
> such a XML file in Firefox and it will give you an error "XML or text
> declaration not at start of entity". Removing the newline character
> causes mod_python to throw an error.
>
>
> I tried to work around that problem by including the common file like
> this:
>
> PSP(req, "common.inc").run()
>
> ...but that gives me the following error:
>
> MOD_PYTHON ERROR
>
> ProcessId: 2787
> Interpreter: '127.0.1.1'
>
> ServerName: '127.0.1.1'
> DocumentRoot: '/var/www/'
>
> URI: '/login.psp'
> Location: None
> Directory: '/var/www/'
> Filename: '/var/www/login.psp'
> PathInfo: ''
>
> Phase: 'PythonHandler'
> Handler: 'mod_python.psp'
>
> Traceback (most recent call last):
>
> File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
> 1537, in HandlerDispatch
> default=default_handler, arg=req, silent=hlist.silent)
> File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
> 1229, in _process_target
> result = _execute_target(config, req, object, arg)
> File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
> 1128, in _execute_target
> result = object(arg)
> File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 337,
> in handler
> p.run()
> File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 243,
> in run
> exec code in global_scope
> File "/var/www/login.psp", line 2, in <module>
> PSP(req, filename = "common.inc")
> File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 119,
> in __init__
> self.load_from_file()
> File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 185,
> in load_from_file
> code = self.cfile_get(filename, mtime)
> File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 169,
> in cfile_get
> return str2code(open(cname).read())
> File "/usr/lib/python2.5/site-packages/mod_python/psp.py", line 57,
> in str2code
> return new.code(*marshal.loads(s))
> MemoryError
>
>
> Using the absolute path /var/www/common.inc doesn't work either. Any
> suggestions how to work around this problem??
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
>
|