mirror of https://github.com/mitsuhiko/flask.git
Kenneth Reitz
13 years ago
8 changed files with 100 additions and 0 deletions
@ -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,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*- |
||||
""" |
||||
Blueprint Example Tests |
||||
~~~~~~~~~~~~~~ |
||||
|
||||
Tests the Blueprint example app |
||||
""" |
||||
import blueprintexample |
||||
import unittest |
||||
|
||||
|
||||
class BlueprintExampleTestCase(unittest.TestCase): |
||||
|
||||
def setUp(self): |
||||
self.app = blueprintexample.app.test_client() |
||||
|
||||
def test_urls(self): |
||||
r = self.app.get('/') |
||||
self.assertEquals(r.status_code, 200) |
||||
|
||||
r = self.app.get('/hello') |
||||
self.assertEquals(r.status_code, 200) |
||||
|
||||
r = self.app.get('/world') |
||||
self.assertEquals(r.status_code, 200) |
||||
|
||||
#second blueprint instance |
||||
r = self.app.get('/pages/hello') |
||||
self.assertEquals(r.status_code, 200) |
||||
|
||||
r = self.app.get('/pages/world') |
||||
self.assertEquals(r.status_code, 200) |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
unittest.main() |
@ -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) |
@ -0,0 +1,5 @@
|
||||
{% extends "pages/layout.html" %} |
||||
|
||||
{% block body %} |
||||
Hello |
||||
{% endblock %} |
@ -0,0 +1,5 @@
|
||||
{% extends "pages/layout.html" %} |
||||
|
||||
{% block body %} |
||||
Blueprint example page |
||||
{% endblock %} |
@ -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> |
Loading…
Reference in new issue