Python’s flexible nature means it can bend to almost any application you can imagine and web development is no exception. This article covers simple form handling and creating cookies and presents an example using everything demonstrated.
Like life itself, we seem to want more control. And this next function we'll create will give us just that -- and output a warning if the field wasn't filled in correctly!
#!/usr/bin/env python
import cgi, re
form = cgi.FieldStorage()
def check(**fields): for field in fields: if field in form: value = form[field].value if re.search(fields[field], value): print value + '<br />' else: print field, 'was not filled in correctly!<br />'
if __name__ == '__main__':
print 'Content-Type: text/htmln'
if 'submit' and 'done' in form: check(name = '^[a-zA-Z ]+$', age = '^d{2}$') else: print 'if you were directed here in error please visit here.com'
Since this is pretty similar to our other function, I'm just going to skip over it quickly. If you've ever used Perl, then you've spotted the regular expressions hiding in there.
Regular expressions in Python are accessed though the 're' module (Python's regular expression library), for obvious reasons... regular expressions still seem like the best way to describe and check form values.
Then if the value isn't what we want, we get a warning instead of just ignoring the field.
Anyone wondering what **fields is all about? I'm sure someone is. The simplest explanation I can think of is that it tells the function to expect a variable number of arguments in X format (currying in functional programming) i.e.: