WebHelpers has many useful functions. WebHelpers html tags and paginate are very useful for Pyramid Applications.Some features are not compatible with Pyramid framework, please see documentations.
WebHelpers in Pyramid Applications: install WebHelpers with easy_install:
$ easy_install WebHelpers
In Pyramid Application in __init__.py:
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ ... config.add_subscriber(add_renderer_globals, BeforeRender) ...
In helpers.py module:
# your helpers imports from webhelpers.html.tags import *
In subscribers.py module:
def add_renderer_globals(event): """ add helpers """ event['h'] = helpers
In Mako Templates:
## text input ${h.text("name", model.name, class_ = "large", maxlength="100")}
How to use WebHelpers Paginate with SQLAlchemy?
In your controller code:
@view_config(route_name="category_list", renderer="category/list.html") def list(request): """categories list """ ... # db query dbsession = DBSession() query = dbsession.query(Customer) # paginate page_url = paginate.PageURL_WebOb(request) customers = Page(query, page=int(request.params.get("page", 1)), items_per_page=10, url=page_url) return {"customers": customers}
Paginate format in Mako Templates:
<div class="pager"> <% link_attr={"class": "btn small"} %> <% curpage_attr={"class": "btn primary small disabled"} %> <% dotdot_attr={"class": "btn small disabled"} %> ${customers.pager(format="$link_previous ~2~ $link_next", symbol_previous="«", symbol_next="»", link_attr=link_attr, curpage_attr=curpage_attr, dotdot_attr=dotdot_attr)} </div>
I am using Bootstrap from Twitter as css framework.