
Co jsou Blueprints? Blueprint je ve Flasku něco jako routes, ale rozšířitelné o to, že je možné soubory "separovat" do vlastních adresářů, a dělat si tak ve věcech pořádek.
Takže prvně si aplikaci rozčleníme jako package, tzn. dáme ji do vlastniho adresáře. Naše "apka" bude pojmenovaná blueapp a bude mít dva adresáře s routami. Adresář api a site. Struktura bude tato:
.
├── blueapp
│ ├── api
│ │ └── routes.py
│ ├── __init__.py
│ └── site
│ └── routes.py
└── run.py
Spouštěč aplikace bude soubor run.py:
from blueapp import create_app
app = create_app()
if __name__ == "__main__":
app.run()
V souboru init.py, se odehrává největší "magic", a to sice většina importů:
from flask import Flask
from .api.routes import api
from .site.routes import site
def create_app():
app = Flask(__name__)
app.register_blueprint(api)
app.register_blueprint(site)
return(app)
Soubory api/routes.py a api/routes.py jsou podobné a používaji knihovnu Blueprint, tak aby mohly přistupovat k souborům ve svých adresářích:
from flask import Blueprint
api = Blueprint('api', __name__, url_prefix='/api')
@api.route('/getdata')
def get_data():
return '<h1>jsi na /api/getdata !</h1>'
from flask import Blueprint
site = Blueprint('site', __name__)
@site.route('/')
def index():
return '<h1>Jsi na / </h1>'
Když aplikaci spustím, tak přes curl dostávám:
curl http://127.0.0.1:5000/
<h1>Jsi na / </h1>
curl http://127.0.0.1:5000/api/getdata
<h1>jsi na /api/getdata !</h1>