Optimize your web2py app using the new import method http://martin.tecnodoc.com.ar/default/post/2011/09/12/7_optimize-your-web2py-app-using-the-new-import-method
On Dec 2, 2:53 pm, kenji4569 <hos...@s-cubism.jp> wrote: > I think there are two types of web applications; one is for admin- > site, and the other is for front-site. For admin-site, CPU-usage would > be relatively not so critical, and rich man's programming (fat models > in web2py) could be allowed. Front-site, on the other hand, needs > optimization as far as possible, which put developers some works. > > Kenji > > On 12月2日, 午後1:43, Bruno Rocha <rochacbr...@gmail.com> wrote: > > > Actually you dont need even an ajax callback. > > > Take this example: > > > ## models/script.py ## > > > db.define_table("mytable", Field("picture", "upload")) > > print "models executed!" > > > ## controllers/default.py ## > > > def index(): > > pictures = db(db.mytable).select() > > return dict(pictures=pictures) > > > def download(): > > return response.download(request, db) > > > ## views/default/index.html ## > > > {{for picture in pictures:}} > > <img src="{{=URL('default', 'download', args=picture.picture)}}"> > > {{pass}} > > > Let's say the table has 200 records and I want to show 200 thumbnails in > > the page. > > > Q: How many times you will see "models executed!" in terminal? and how many > > times the table will be defined? the Auth, Crud, Service etc will be > > instantiated? > > > A: 201 times. 1 for the first request and 200 for each image which calls > > the 'download' function. > > > Now imagine a system which huge model files, too many tables and calling > > long running funtions. > > > my tips: > > > 1. Avoid models,usemodules and import what you need in controller. > > > 2. Avoid the download function, put uploadfolder='static' and build > > URL('static') when need an image. Or put your download function in a > > separate application which have access to the file system and database. > > -- > > > Bruno Rocha > > [http://rochacbruno.com.br] > >