Blueprint example app

This commit is contained in:
Dmitry Shevchenko 2012-03-01 02:07:26 -06:00
parent 20a3281209
commit 85ad4ffb60
7 changed files with 64 additions and 0 deletions

View file

@ -0,0 +1,11 @@
from flask import Flask
from simple_page.simple_page import simple_page
app = Flask(__name__)
app.register_blueprint(simple_page)
# Blueprint can be registered many times
app.register_blueprint(simple_page, url_prefix='/pages')
if __name__ == '__main__':
app.run(debug=True)

View file

@ -0,0 +1,13 @@
from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound
simple_page = Blueprint('simple_page', __name__,
template_folder='templates')
@simple_page.route('/', defaults={'page': 'index'})
@simple_page.route('/<page>')
def show(page):
try:
return render_template('pages/%s.html' % page)
except TemplateNotFound:
abort(404)

View file

@ -0,0 +1,5 @@
{% extends "pages/layout.html" %}
{% block body %}
Hello
{% endblock %}

View file

@ -0,0 +1,5 @@
{% extends "pages/layout.html" %}
{% block body %}
Blueprint example page
{% endblock %}

View file

@ -0,0 +1,25 @@
<!doctype html>
<title>Simple Page Blueprint</title>
<div class=page>
<h1>This is blueprint example</h1>
<p>
A simple page blueprint is registered under / and /pages<br/>
you can access it using this urls:
<ul>
<li><a href="{{ url_for('simple_page.show', page='hello') }}">/hello</a></li>
<li><a href="{{ url_for('simple_page.show', page='world') }}">/world</a></li>
</ul>
</p>
<p>
Also you can register the same blueprint under another path
<ul>
<li><a href="/pages/hello">/pages/hello</a></li>
<li><a href="/pages/world">/pages/world</a></li>
</ul>
</p>
{% block body %}
{% endblock %}
</div>

View file

@ -0,0 +1,5 @@
{% extends "pages/layout.html" %}
{% block body %}
World
{% endblock %}