Dear All,

I'm not yet intimate with WSGI and I wish to know what is the Best Practice 
to connect to Python applications.

Let me set the scene:

1) the mod_wsgi module is loaded with the hhttp server (Apache2), is active 
and working.

2) The configuration is simple:

        WSGIScriptAlias /core/ /home/rse/core/

        <Directory /home/rse/core>
                AllowOverride None
                SetHandler wsgi-script
                Options -MultiViews +SymLinksIfOwnerMatch
                Require all granted
        </Directory>

        WSGIDaemonProcess rseIMS user=rse group=rse processes=1 threads=16 
python-path=/home/rse/core
        WSGIProcessGroup rseIMS
        WSGIImportScript /home/rse/core/imsStart.py process-group=rseIMS 
application-group=rseIMS
        WSGICallableObject imsApp

rse/rse is my user/group id on Linux and ims or IMS is a generic name. My 
Python 

applications have thus names like imsConfig.py, imsUtil.py, 
imsDatabases.py, etc ... and are packaged under the /home/rse/core 
directory or sub-directories.

The alternative, as I understand it, is twofold:

CASE A:
-------------
Because all my imsXYZ.py applications are under the the /home/rse/core 
directory, Apache2+mod-wsgi know that they must be handled by Python. So, 
when the environment dictionary, contains:

mod_wsgi.callable_object: imsApp
mod_wsgi.script_name: /core/imsExample.py

the "Python daemon" knows that it must execute imsExample.py, and the 
latter better knows about a function or class named imsApp, e.g. through 
the statement `from core.imsWSGI import imsApp`, assuming that imsWSGI.py 
contains the function or class definition of imsApp. By calling imsApp my 
application imsExample will know what to do by investigating the content of 
`wsgi.input` and after finishing its processing will pass its response back 
to imsApp. For instance the imsApp can have two methods: passRequest and 
getResponse for exchanging the request/response between imsApp and 
imsExample or any imsXYZ application.

CASE B:
-------
Because imsApp is the obliged gateway between Apache2+mod_wsgi and my 
applications, I could modify my webpages so that I would always have:

mod_wsgi.callable_object: imsApp
mod_wsgi.script_name: /core/imsWSGI.py

and put `Example` as part of the `wsgi.input` so that by executing 
imsWSGI.py, it would be easy to know that imsExample (whatever it would be: 
function, class,...) must be called to process the other meaningful parts 
contained in `wsgi.input`



My understanding of the alternative is summarized as follows:

My applications can be called either via the script-name or the callable object.
Both must be present because otherwise I would have one huge monolithic 
application.

My question is threefold:
1) Is my understanding of CASE A and CASE B correct ?
2) Are these two cases the only possible ones (I'm not envisaging static pages
that could be delivered by NGINX for instance in front of Apache,
or have a separate directory for serving CGI-type Python scripts) ?
3) If the answers to 1) and 2) are YES, YES, what is the Best Practice: A or B ?

Many thanks in advance,
René



-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to