A certainl part of an if() structure never gets executed.

Michael Torrie torriem at gmail.com
Wed Jun 12 00:49:05 EDT 2013


On 06/11/2013 02:20 PM, Νικόλαος Κούρας wrote:
> [code]
> 		if not re.search( '=', name ) and not re.search( '=', month ) and not re.search( '=', year ):

What do each of these functions return?  When you print out
re.search('=', name) what happens?

When you're debugging you should print each of these out.  Also make a
standalone program (NOT A CGI SCRIPT) for debugging.  You can test
various inputs by simply going:

name = "My test name"
month = "Thirteenth"
year = "2013"

One thing I do is to make my code into functions and then at the bottom
of each script I have something like this:

if __name__ == "__main__":
    # run some test code here
    # or alternatively do the CGI stuff depending on what
    # mode you're in.

You could even put in debugging flags (apologies to Rick who recently
raved against needing to resort to this sort of thing).

Consider this code:
---------- do_something.py -----------------------
debug = False

def do_something(name, month, year):
    if debug:
        print re.re.search( '=', name )
        print not re.search( '=', month )
        print not re.search( '=', year )
    if not re.search( '=', name ) and not re.search( '=', month ) and
not re.search( '=', year ):
        print "gonna do query"
        # code follows

if __name__ == "__main__"
    debug = True
    do_something("bob", None, 2012)
    do_something(None, None, None)
    do_something("big", "Octember", 2067)
    # other use cases here

-------------------------------------------------

Then in your cgi script itself, you just do this:
----------- my_cgi_script.py -------------------
import do_something

# handle cgi stuff
# get name, month year
dosomething.dosomething(name, month, year)
------------------------------------------------
Now to test your code you can just run the module directly with python,
and once you've got it working, the CGI will also work, since it pulls
in the same code.

If this concept is new to you, I strongly urge you to stop development
and read through a good python tutorial or get a good python book.



More information about the Python-list mailing list