OK - I found a solution or hack. 1. put my sqlite database into applications/<app_name>/database folder
2. add this into applications/<app_name>/model/db.py nat = DAL('sqlite://nat_full.db', migrate=False) 3. use "result = nat.executesql(stmt)" whenever I want to run my queries Anyone can comment if this is an appropriate solution>? On Thursday, 8 November 2012 13:37:15 UTC-6, Maurice Ling wrote: > > Hi everyone > > Let's say I have a database that I want to fit a web application to. There > are a lot of views and triggers in the database, so I do not consider > porting as a viable option. How do I go about doing this? > > My steps are as follow: > 1. create an "init" application > 2. put my database into application/init/controller folder > 3. I have the following as controller/default.py > > import sqlite3 as s > > con = s.connect('nat_full.db') > cur = con.cursor() > > def get_average_microarray(): > form = FORM( > TABLE( > TR('Organism: ', > SELECT('Human', 'Mouse', 'Rat', _name='organism')), > TR('Level: ', > SELECT('Gene', 'Exon', _name='level')), > TR('Type: ', > SELECT('Sense', 'Antisense', _name='type')), > INPUT(_type='submit', _value='SUBMIT'))) > if form.accepts(request.vars,session): > session.organism = str(form.vars.organism) > session.level = str(form.vars.level) > session.type = str(form.vars.type) > redirect(URL(r=request, f='show_average_microarray')) > return dict(form=form) > > def show_average_microarray(): > tablename = '' > if session.level == 'Gene' and session.type == 'Sense': > tablename = 'sense_gene_core_table' > elif session.level == 'Gene' and session.type == 'Antiense': > tablename = 'antisense_gene_core_table' > elif session.level == 'Exon' and session.type == 'Sense': > tablename = 'sense_exon_core_table' > elif session.level == 'Exon' and session.type == 'Antiense': > tablename = 'antisense_exon_core_table' > stmt = 'select * from ' + tablename > cur.execute(stmt) > result = cur.fetchall() > return dict(result=result) > > 4. http://localhost:8000/init/default/get_average_microarray shows the > primitive form (which is alright) but it gives me an error when I submit > the form. > > Traceback (most recent call last): > File "C:\Users\Maurice.Ling\Desktop\nat_web\gluon\restricted.py", line 212, > in restricted > exec ccode in environment > File > "C:/Users/Maurice.Ling/Desktop/nat_web/applications/init/controllers/default.py" > <http://localhost:8000/admin/default/edit/init/controllers/default.py>, line > 48, in <module> > File "C:\Users\Maurice.Ling\Desktop\nat_web\gluon\globals.py", line 188, in > <lambda> > self._caller = lambda f: f() > File > "C:/Users/Maurice.Ling/Desktop/nat_web/applications/init/controllers/default.py" > <http://localhost:8000/admin/default/edit/init/controllers/default.py>, line > 45, in show_average_microarray > cur.execute(stmt) > OperationalError: no such table: sense_gene_core_table > > Is there any solution? > > Thanks in advance > > Maurice > > > --