Pythonic way of web-programming

Graham Fawcett graham__fawcett at hotmail.com
Mon Apr 7 19:23:03 CEST 2003


Lothar Scholz wrote:
> lekishvili at python.qartu.com (Giorgi) wrote in message news:<a3b5b608.0304040904.146dfff5 at posting.google.com>...
> 
>>- Is Python a real web-programming language at all? I mean, has
>>somebody ever used it for real, commercial tasks? Please, do not
>>consider my question too trivial. There is no language equally
>>suitable for all tasks, however, Python seems to me a language
>>naturally tailored for web-programming; this or that way, I have more
> 
> 
> No its not a naturally tailored web-programming language, because it
> is
> very hard to integrate in Server Pages. You have to change the
> indentation syntax/semantic of python to embedd it in a real useable
> way.
> This is done by Webware but it looks very strange to normal python
> programmers.
> 
> Of course you can use template systems. But this is not always a good
> economic decision.

Lothar, "not integrating well in Server Pages" is an incomplete argument 
against Python as a Web programming language, IMHO.

First, "Server Pages" are a subset of a much larger range of 
"templating" solutions. Server Page schemes tend to have a lot of code 
embedded between pseudo-HTML tags, interspersed with HTML snippets. They 
also tend to be unmaintainable, and often get polluted with application 
logic, when they should be focusing on presentation alone.

If the script in your Server Page is doing much more than iterating a 
list of elements, calling code from a Python module (that you wrote, or 
that's in the standard library), or doing a bit of string manipulation, 
then it's time to stop writing code for a while, Google "separate logic 
from presentation" and think about your approach until you're really 
sure you've got your concerns separated.

I would agree with you that Python isn't overly well suited to the 
Server Page approach, though I've used it in ASP with very few problems 
caused by indentation. Let's not count the language out quite yet...

Python has some outstanding templating options. I think, e.g., that 
ZopePageTemplates (doesn't require Zope, btw) is a work of art, and 
avoids many of the inherent design flaws that mar most templating 
approaches. If you need it to, ZPT will coexist very peacefully with Web 
designer tools (Dreamweaver, etc.), *far* better than most other 
templating systems will, regardless of what language those systems 
favour. And, best, ZPT makes it very *hard* to put application logic 
into the page, thus forcing you to consider presentation alone, a very 
helpful design constraint indeed.

Or, take a look at Quixote's approach to templating. It turns the whole 
concept inside out, and gives a programmer-friendly way of building Web 
output without inventing an pseudo-HTML minilanguage to struggle with. A 
great approach that builds on Python's flexibility and strengths.

But the big point is that there is far more to Web application 
programming than templating. Templating is the easy part! There's domain 
modelling, business logic, scripting, persistence management, database 
access, code maintainability, RAD, developer effectiveness, etc. Python, 
most lithe of modern languages, seems an excellent fit to these more 
serious needs.

Best,
-- Graham




More information about the Python-list mailing list