commit
0ba758d448
8 changed files with 100 additions and 0 deletions
11
examples/blueprintexample/blueprintexample.py
Normal file
11
examples/blueprintexample/blueprintexample.py
Normal 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)
|
||||||
36
examples/blueprintexample/blueprintexample_test.py
Normal file
36
examples/blueprintexample/blueprintexample_test.py
Normal file
|
|
@ -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
examples/blueprintexample/simple_page/__init__.py
Normal file
0
examples/blueprintexample/simple_page/__init__.py
Normal file
13
examples/blueprintexample/simple_page/simple_page.py
Normal file
13
examples/blueprintexample/simple_page/simple_page.py
Normal 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)
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends "pages/layout.html" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
World
|
||||||
|
{% endblock %}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue