Flask-Views is a Flask extension which provides a set of class-based views, inspired by the Django class based views.
Currently this package contains a set of views for rendering (template and JSON) responses dispatched by HTTP request method, views for handling (WTForms) form submission and a collection of database views for creating and updating objects (currently MongoDB is supported by using Mongoengine).
Flask-Views can be installed by executing pip install flask-views. The source is available at: http://github.com/brocaar/flask-views
from flask_views.edit import FormView
class ContactFormView(FormView):
# For creating forms classes, see the WTForms documentation
form_class = ContactForm
template_name = 'contact_form.html'
def form_valid(self, form):
# Do something with the submitted form data
return super(ContactFormView, self).form_valid(form)
def get_success_url(self):
return url_for('contact.form')
app.add_url_rule(
'/contact/',
view_func=ContactFormView.as_view('contact')
)
from flask_views.db.mongoengine.detail import DetailView
class ArticleView(DetailView):
get_fields = {
'category': 'category',
'slug': 'slug',
}
# For creating document classes, see the Mongoengine documentation
document_class = Article
template_name = 'article_detail.html'
app.add_url_rule(
'/articles/<category>/<slug>/',
view_func=ArticleView.as_view('article')
)