program organization question for web development with python

Hans hansyin at gmail.com
Mon Sep 27 18:13:28 EDT 2010


On Sep 17, 2:36 am, Bruno Desthuilliers <bruno.
42.desthuilli... at websiteburo.invalid> wrote:
> Hans a écrit :
> (snip)
>
> > Maybe I did not make my question clear. I never tried python web
> > programing before, so I want to start from CGI.
>
> You can indeed learn quite a few things doing raw CGI - the most
> important one being why frameworks are a good idea !-)
>
> > I read something about web framework like django, but seems it's a
> > little bit complicated.
>
> Not that much IMHO, but being an early django user I'm probably a bit
> biased. Now Python is known as "the language with more web frameworks
> than keywords", so you could probably check some lighter framework like
>   web.py (http://webpy.org/) or flask (http://flask.pocoo.org/).
>
> > my task is actually very simple: get search
> > string from input, and then search database, print search result. I
> > thought CGI should be good enough to do this.
>
> CGI is "good enough" to do any web stuff - just like assembler is "good
> enough" to write any application !-)
>
>
>
> > I don't have any idea about how to organize those cgi codes, so what
> > I'm asking is:
>
> > 1. do I have to have each single file for each hyper-link? Can I put
> > them together? how?
>
> > 2. how can I pass a db_cursor to another file?   can I use db_cursor as
> > a parameter?
>
> Obviously not. FWIW, both questions show a lack of understanding of the
> HTTP protocol, and you can't hope to do anything good in web programming
> if you don't understand at least the basics of the HTTP protocol,
> specially the request/response cycle.
>
> Now for a couple more practical answers:
>
> There are basically two ways to organize your url => code mapping:
> 1/ have only one cgi script and use querystring params to tell which
> action should be executed.
> 2/ have one cgi script per action.
>
> The choice is up to you. For a simple app like yours, the first solution
> is probably the most obvious : always display the seach form, if the
> user submitted the form also display the result list. That's how google
> works (wrt/ user interface I mean).
>
> Now if you still need / want to have distinct scripts and want to factor
> out some common code, you just put the common code in a module that you
> import from each script.

Thank you very much! I got your meaning. The choice 1 is definitely
what I want, I just cannot think about this idea by myself. Thank you
again!



More information about the Python-list mailing list