from gluon.tools import Crud
crud = Crud(db)
auth.settings.login_next=URL('Gallery')
auth.settings.logout_next=URL('index')
auth.settings.register_next = URL('Gallery')
crud.settings.delete_next = URL('Gallery')
group_id=auth.add_group('manager', 'can access the manage action')
auth.add_permission(group_id, 'access to manage')
auth.add_permission(group_id, 'create', db, 0)
auth.add_permission(group_id, 'read', db, 0)
auth.add_permission(group_id, 'delete', db, 0)
auth.add_permission(group_id, 'update', db, 0)
auth.add_permission(group_id, 'select', db, 0)
auth.add_membership(group_id, 7)
@auth.requires_permission('access to manage')
def manage():
grid = SQLFORM.smartgrid(db.image)
return dict(grid=grid)
def index():
images = db().select(db.image.ALL, orderby=db.image.title)
return dict(images=images)
@auth.requires_login()
def Gallery():
form = SQLFORM(db.image)
if form.process().accepted:
response.flash = 'The image is uploaded!'
images = db().select(db.image.ALL, orderby=db.image.title)
return dict(images=images, form=form)
def show():
image = db.image(request.args(0)) or redirect(URL('index'))
db.comment.image_id.default = image.id
form = crud.create(db.comment, next=URL(args=image.id),
message='Your comment is posted!')
comments = db(db.comment.image_id==image.id).select()
return dict(image=image, comments=comments, form=form)
def delete():
crud.delete(db.image, request.args(0))
return dict()
def list_items():
items = db().select(db.image.ALL, orderby=~db.image.votes)
counter = db(db.auth_user.id > 0).count()
return dict(items=items,counter=counter)
def download():
return response.download(request, db)
def vote():
item = db.image[request.vars.id]
new_votes = item.votes
l = item.voted
if auth.user.username not in l:
new_votes = item.votes + 1
l = l + [str(auth.user.username)]
item.update_record(voted=l)
item.update_record(votes=new_votes)
return str(new_votes)
def user():
return dict(form=auth())
def download():
return response.download(request,db)
def call():
return service()
@auth.requires_signature()
def data():
return dict(form=crud())
This is the default.py controller module. It seems each and every page load
causes the sqlite/db file to increase by 2-3 MB, though I'm cannot be sure
about any specific page.
Thanks in advance.
On Sunday, September 2, 2012 9:20:39 PM UTC+5:30, entropist wrote:
>
> Hello, I've just started with web2py and I'm trying to learn as much as I
> can to build functional web applications.
> I'm almost done with my first web2py app, it's a basic photo gallery where
> one can upload photos visible to other users, with functionalities like
> comment and like along with photo ratings etc.
> But I noticed a rather peculiar behavior, which slowed down my app
> tremendously. The storage.sqlite/storage.db file increases in its size
> mightily with every page load of my app!
> Within a few minutes of using the app, its size reaches around 1GB and
> goes onto 4-5GB after a while!
>
> With regard to the inner workings, I have images, users and comments
> databases. Besides, I have heavily tweaked the CSS file, added my own
> stylesheets and have used some extra jquery modules extensively.
>
> What could be the reason behind such a behavior and how can I get it
> fixed? Please guide.
>
--