On Mon, Dec 7, 2015 at 2:07 PM,  <villasc...@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.
>
> Why don't I see the .py extension in my browser?

PHP tends to be served like CGI, which is that the URL mirrors the
path to a script that lives under a particular directory, which the
webserver locates and executes. This has some downsides:

* It exposes details about the structure of your server to the public,
which is considered a security weakness.
* An improperly configured webserver might accidentally serve scripts
or other files that are not intended to be served over the web, which
is a much bigger security risk.
* It's inflexible; if you move your script, then the URL must
necessarily change as well.

With Python, it's more usual to have a greater abstraction between
URLs and code. A set of URLs are mapped to a single Python gateway,
and the gateway dispatches the request to the appropriate request
handler. With this scheme there is no reason to have .py extensions in
the URLs because the URL structure is unrelated to how the actual
scripts are organized in the file system. This also makes it easier to
create meaningful URLs: see
https://en.wikipedia.org/wiki/Semantic_URL.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to