Browse Source

Blueprint example app

pull/413/head
Dmitry Shevchenko 13 years ago
parent
commit
85ad4ffb60
  1. 11
      examples/blueprintexample/blueprintexample.py
  2. 0
      examples/blueprintexample/simple_page/__init__.py
  3. 13
      examples/blueprintexample/simple_page/simple_page.py
  4. 5
      examples/blueprintexample/simple_page/templates/pages/hello.html
  5. 5
      examples/blueprintexample/simple_page/templates/pages/index.html
  6. 25
      examples/blueprintexample/simple_page/templates/pages/layout.html
  7. 5
      examples/blueprintexample/simple_page/templates/pages/world.html

11
examples/blueprintexample/blueprintexample.py

@ -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)

0
examples/blueprintexample/simple_page/__init__.py

13
examples/blueprintexample/simple_page/simple_page.py

@ -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)

5
examples/blueprintexample/simple_page/templates/pages/hello.html

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

5
examples/blueprintexample/simple_page/templates/pages/index.html

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

25
examples/blueprintexample/simple_page/templates/pages/layout.html

@ -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>

5
examples/blueprintexample/simple_page/templates/pages/world.html

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