Understanding Python from a PHP coder's perspective

Cameron Simpson cs at zip.com.au
Mon Dec 7 16:33:57 EST 2015


On 07Dec2015 13:07, villascape at gmail.com <villascape at gmail.com> wrote:
>Hello all!  Just started getting into Python, and am very excited about the prospect.
>
>I am struggling on some general concepts.  My past experience with server-side code is mostly limited to PHP and websites.  I have some file called "whatever.php", the browser accesses it, and PHP parses it and returns HTML, JSON, etc.  Every now and then, I need to run some background PHP script, or have some PHP script initiated by a CRON job, or have some PHP script initiated by the command line running in an endless loop, and while it works, feel other languages might be more appropriate.
>
>So, my interest in Python...
>
>I've read up on Python, and while some aspects seem similar to PHP, some don't.  I have learned how to create Python script, have run it from the command line, and have even accessed it with Apache by placing http://example.com/myscript.py in the browser.  I am used to seeing .php extensions, but never .py extentions, and even visited multiple sites which I knew were written in Python, but never saw the browser expose the .py extensions.  I am obviously missing something.

The most obvious thing is: a well produced website does not expose its 
implementation language in the URL. All those .php URLs? Sloppy! Suppose you 
wanted to change the implementation and switched languages? All your users' 
bookmarks would break!

>Why don't I see the .py extension in my browser?

Usually Python is used in a web server via a WSGI plugin and a framework of 
some kind (Django, Flask, CheryPy etc). All of these allow you to associate any 
URL with any piece of Python code. So you don't have that simple but also 
inflexible "map this URL to a specific .php file" model that you have with 
typical PHP.

>Is Python event driven like PHP, or is it somehow different?

Depends what you mean by "event driven". I suspect you mean "accessing a web 
page runs a python program".

A .php file is a kind of macro file: it is ostensibly HTML until one hits the 
<?php tag, and then a snippet of PHP runs and usually writes some output into 
the HTML stream going back to the browser. You very rarely see PHP 
"standalone", used to write command line tools or other things - it is almost 
only ever used to generate web page output.

Python is a general purpose language and all manner of things are written in 
it. When used in a web server there is usually:

  - a WGSI hook into the web server configuration, which causes certain URLs to 
    be passed to a running Python program for implementation

  - a Python program which maps those URLs to particular pieces of code, which 
    return HTML or other suitable content

>How should I view Python differently than PHP?

It is more useful and nicer to work in. For a quick and dirty web page PHP is a 
handy tool, but almost entirely for the web. Python is not targeted specificly 
at web output.

Cheers,
Cameron Simpson <cs at zip.com.au>



More information about the Python-list mailing list