Luego de de esta prolongada selección de datos hemos podido resolver este enigma que pueden tener ciertos lectores. Te regalamos la respuesta y esperamos resultarte de mucha apoyo.
Solución:
Sí, los Blueprints son la forma correcta de hacerlo. Lo que estás tratando de hacer se puede lograr así:
Principal.py
from flask import Flask
from AccountAPI import account_api
app = Flask(__name__)
app.register_blueprint(account_api)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
CuentaAPI.py
from flask import Blueprint
account_api = Blueprint('account_api', __name__)
@account_api.route("/account")
def accountList():
return "list of accounts"
Si esta es una opción, podría considerar usar diferentes prefijos de URL para las diferentes API/Blueprints a fin de separarlos limpiamente. Esto se puede hacer con una ligera modificación a lo anterior. register_blueprint
llamar:
app.register_blueprint(account_api, url_prefix='/accounts')
Para obtener más documentación, también puede consultar los documentos oficiales.
Utilizando Blueprint
puedes añadir tus rutas en el routes
directorio.
Estructura
app.py
routes
__init__.py
index.py
users.py
__init__.py
from flask import Blueprint
routes = Blueprint('routes', __name__)
from .index import *
from .users import *
index.py
from flask import render_template
from . import routes
@routes.route('/')
def index():
return render_template('index.html')
usuarios.py
from flask import render_template
from . import routes
@routes.route('/users')
def users():
return render_template('users.html')
app.py
from routes import *
app.register_blueprint(routes)
Si desea agregar un nuevo archivo de ruta, diga accounts.py
solo necesitas crear el archivo accounts.py
en el routes
directorio, al igual que index.py
y users.py
luego impórtelo en el routes.__init__.py
Archivo
from .accounts import *
Si está utilizando blueprints y desea enrutar / redirigir a una URL de su blueprint dentro de una plantilla que está usando, debe usar la instrucción url_for correcta.
En su caso, si desea abrir la cuenta de URL de su plan, debe indicarlo así en su plantilla:
href=" url_for('account_api.account') "
y para el principal aplicación se vería así:
redirect(url_for('account_api.account'))
De lo contrario, la biblioteca werkzeug arrojará un error.