import sys; sys.path.append('../') from web.wsgi import * import web.database.object, os links = """
""" def simpleApp(environ, start_response): person = web.database.object.Table("Person") person.add(column="String", name='firstName', required=True) person.addColumn(web.database.object.String(name="surname")) person.addColumn( web.database.object.StringSelect( name="profession", options=[None, 'Developer', 'Web Developer'], displayNoneAs='Not Specified' ) ) person.add(column="Bool", name='sex', displayTrueAs='Male', displayFalseAs='Female') database = web.database.object.Database() database.addTable(person) # Initialise the database database.init(environ['web.database.cursor']) if not database.tablesExist(): database.createTables() mode = 'view' if environ['web.cgi'].has_key('mode'): mode = environ['web.cgi']['mode'].value # signIn mode needed to allow for sign in handling # you will be redirected to the correct place eventually if mode == 'signIn': start_response('403 User not signed in', []) environ['web.database.connection'].commit() return [] elif mode == 'signOut': start_response('403 User not signed in', []) environ['web.database.connection'].commit() return [] elif mode == 'add': if not environ.has_key('web.auth.user'): # No user signed in start_response('403 User not signed in', []) environ['web.database.connection'].commit() return [] else: result = [] form = database['Person'].form(stickyData={'mode':'add'}) if len(environ['web.cgi']) > 1: # Assume form submitted form.populate(environ['web.cgi']) if form.valid(): entry = database['Person'].insert(all=form.dict()) result.append('''Go Back'''%(form.frozen()) ) else: result.append( """%s
There were some invalid fields. Please correct them.
%s"""%(links, form.html()) ) else: result.append("""%sFirstname | ' entries += 'Surname | Profession | Sex |
%s | %s | %s | %s |
%s
%s
"%(links, entries,info)] # Middleware Setup application = error.Error( database.Database( session.Session( cgi.CGI( auth.Auth( simpleApp, driver='database', autoCreate=1, expire=0, idle=20, template = """%%(message)s
"""%links, redirectMethod='metaRefresh' ), ), expire = 1000, autoCreate = 1, driver='database', ), adapter = 'snakesql', database = 'wsgi-example', autoCreate = 1 ), )