Saltar al contenido

Divida la aplicación Python Flask en varios archivos

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.pysolo necesitas crear el archivo accounts.py en el routes directorio, al igual que index.py y users.pyluego 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *