3 Réponses :


1
votes

Dans le dossier racine, changez le fichier principal:

Welcome username

Le fichier blueprint, dans un sous-dossier du dossier racine:

listener.py

 Home

Le fichier de vue, dans le même sous-dossier que le fichier de plan:

from flask import request

def home():
    if request.method == 'POST':
        user = request.form['name']
        return "Welcome "+user
    else:
        return 'home'

Get Request O / P:

from flask import Blueprint

from source.view import home


test = Blueprint('test', __name__)

test.add_url_rule('/home', view_func=home,methods=['GET', 'POST'])

Post Request O / P:

from flask import Flask

from source.listener import test

application = Flask(__name__)

application.register_blueprint(test)

application.run()


0 commentaires

1
votes

Vous devez importer le contenu des vues dans le fichier blueprint .

J'ai créé le scénario et je suis en mesure d'obtenir la vue . De plus, j'ai mis à jour la convention de dénomination.

Structure des dossiers:

Click==7.0
Flask==1.0.3
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
pkg-resources==0.0.0
Werkzeug==0.15.4

app.py :

XXX

blueprints / example_blueprint.py :

export FLASK_APP=app.py
export FLASK_ENV=development
flask run

blueprints / example_views.py :

from .example_blueprint import bp

@bp.route('/home', methods=['GET', 'POST'])
def home():
    return 'home'

blueprints / __ init__.py : Fichier vide

Sortie:

blueprint example

Exécution de l'application:

from flask import Blueprint

bp = Blueprint('bp', __name__,
                        template_folder='templates')

from .example_views import *

requirements.txt :

from flask import Flask
from blueprints.example_blueprint import bp

app = Flask(__name__)
app.register_blueprint(bp)

Référence:


0 commentaires

1
votes

Le module de vue n'est pas découvert car seul l'objet Blueprint est importé.

De l'organisation de votre Blueprint et en particulier de l'importation que vous avez partagée dans votre fichier principal, je peux déduire l'existence d'un __init__.py dans le dossier blueprint qui exporte l'objet blueprint.

L'importation des vues dans ce fichier devrait permettre à l'application de découvrir les vues enregistrées dans le blueprint. c'est-à-dire

blueprint/__init__.py:

from .test import test
from . import views


0 commentaires