Re: Page layouts in mod_python?

2006-12-20 Thread Bruno Desthuilliers
Graham Dumpleton a écrit :
 Bruno Desthuilliers wrote:
 
Michael a écrit :

Hey everyone,

Is it possible to automatically insert headers/footers using
mod_python?
I will be not be using PSP's, so I cannot use the PSP/include solution.
Furthermore, the header will be dynamic; it won't be a static HTML
page.

In short, I've been looking for a page layout facility using
mod_python.
(Similar to the layout capability in Ruby on Rails.)

mod_python is mainly a librairy exposing the apache API to Python - not
a full-stack db-to-web framework. What you want here is a HTML
templating system. There are quite a lot available in Python - look for
SimpleTAL, Genshi, Myghty, Jinja, Cheetah, etc...
 
 
 Contrary to the above advise, you could actually use mod_python to do
 what you want and you do not need a full stack to do it.

I never said the OP would need a full-stack framework - just that there 
are existing solutions that can solve the problem in a very simple way.
-- 
http://mail.python.org/mailman/listinfo/python-list


Page layouts in mod_python?

2006-12-19 Thread Michael
Hey everyone,

Is it possible to automatically insert headers/footers using
mod_python?
I will be not be using PSP's, so I cannot use the PSP/include solution.
Furthermore, the header will be dynamic; it won't be a static HTML
page.

In short, I've been looking for a page layout facility using
mod_python.
(Similar to the layout capability in Ruby on Rails.)

Thank you in advance,
-Michael

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Page layouts in mod_python?

2006-12-19 Thread Bruno Desthuilliers
Michael a écrit :
 Hey everyone,
 
 Is it possible to automatically insert headers/footers using
 mod_python?
 I will be not be using PSP's, so I cannot use the PSP/include solution.
 Furthermore, the header will be dynamic; it won't be a static HTML
 page.
 
 In short, I've been looking for a page layout facility using
 mod_python.
 (Similar to the layout capability in Ruby on Rails.)

mod_python is mainly a librairy exposing the apache API to Python - not 
a full-stack db-to-web framework. What you want here is a HTML 
templating system. There are quite a lot available in Python - look for 
SimpleTAL, Genshi, Myghty, Jinja, Cheetah, etc...

HTH
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Page layouts in mod_python?

2006-12-19 Thread Graham Dumpleton

Bruno Desthuilliers wrote:
 Michael a écrit :
  Hey everyone,
 
  Is it possible to automatically insert headers/footers using
  mod_python?
  I will be not be using PSP's, so I cannot use the PSP/include solution.
  Furthermore, the header will be dynamic; it won't be a static HTML
  page.
 
  In short, I've been looking for a page layout facility using
  mod_python.
  (Similar to the layout capability in Ruby on Rails.)

 mod_python is mainly a librairy exposing the apache API to Python - not
 a full-stack db-to-web framework. What you want here is a HTML
 templating system. There are quite a lot available in Python - look for
 SimpleTAL, Genshi, Myghty, Jinja, Cheetah, etc...

Contrary to the above advise, you could actually use mod_python to do
what you want and you do not need a full stack to do it. Whether you
would want to use just mod_python is another question and the answer
would depend on a bit on what form the HTML files you want to modify
are in or what is generating them.

The first option available is to write an Apache output filter using
mod_python which takes the content of the page and searches for the
body and /body tags and inserts at those points the appropriate
header/footer. Using this scheme, because you are looking for tags
already within the HTML page, you do not need to modify the original
HTML source files. Because it is an output filter, the technique will
work on both static files and on files which have been generated
dynamically by PHP, mod_perl, mod_python or any other Apache response
handler capable of generating dynamic pages.

For this first technique, you do not even have to use mod_python if you
didn't want to, as there are other Apache modules which have been
designed to specifically use this technique to insert headers and
footers in pages. These other modules are written in C and so are
probably going to be quicker as well as more flexible without you
having to do too much hard work.

The second option, although not strictly mod_python specific, is to
enable server side include processing for HTML files. For this to work
you would need to modify the original HTML source files or what is
generating them to add in appropriate SSI directives to include the
header/footer. Again, because SSI is performed as an output filter,
source files can be static or dynamically generated.

If using basic SSI, the include of the header/footer to get dynamic
information would be done as a virtual include. That is, it generates
an Apache subrequest to a handler which generates the header/footer.
This handler could be implemented as a CGI script, mod_python handler,
mod_perl handler or even PHP.

Alternatively, in mod_python 3.3 (soon to be released), one can use the
new ability to use Python code in conjunction with SSI. For dynamic
header/footer snippets, this would involve adding callouts to pages to
Python code setup using mod_python.

For an example of header/footer generation using Python code, see:


http://www.dscpl.com.au/wiki/ModPython/Articles/BasicsOfServerSideIncludes

If you particularly want to use mod_python, for further discussion on
this topic and what may be best for what you want to do, I would
suggest you might take the conversation over to the mod_python user
mailing list. Details for the list are on the mod_python web site.

Graham

-- 
http://mail.python.org/mailman/listinfo/python-list