[Python] Fractionner un gros fichier Flask en utilisant Blueprint

introduction

Lors de la création d'une application WEB à l'aide de Flask, qui est un framework Web de python, le nombre de lignes dans le fichier Flask a tendance à augmenter, j'ai donc envisagé la division de fichiers. Il semble que le fractionnement de fichiers à l'aide de Brueprint soit courant dans Flask, et cette fois j'ai utilisé Blueprint pour fractionner le fichier.

Structure du répertoire

├── main.py
├── COMP_A
│   └── func_A.py
├── COMP_B
│   └── func_B.py
└── templates
    ├── COMP_A
    │   ├── index_A_1.html
    │   └── index_A_2.html
    └── COMP_B
        ├── index_B_1.html
        └── index_B_2.html

Le programme principal est main.py. De plus, on suppose qu'il existe des composants A et B. Func_A.py et func_B.py dans chaque composant sont des fichiers qui utilisent Flask.

Dans flask, le fichier html est stocké sous le modèle, mais cette fois, un répertoire pour chaque composant a été préparé sous le modèle et le fichier html a été stocké.

Code source

func_A.py

from flask import render_template
from flask import Blueprint

bpa = Blueprint('bpa', __name__, url_prefix='/A')

@bpa.route('/a1')
def app_a1():
    return render_template('COMP_A/index_A_1.html')
    #return "hello A a1"

@bpa.route('/a2')
def app_a2():
    return render_template('COMP_A/index_A_2.html')
    #return "hello A a2"

func_B.py


from flask import render_template
from flask import Blueprint

bpb = Blueprint('bpb', __name__, url_prefix='/B')

@bpb.route('/b1')
def app_b1():
    return render_template('COMP_B/index_B_1.html')
    #return "hello B b1"

@bpb.route('/b2')
def app_b2():
    return render_template('COMP_B/index_B_2.html')
    #return "hello B b2"

main.py

from flask import Flask

app = Flask(__name__)

from COMP_A.func_A import bpa
from COMP_B.func_B import bpb

@app.route('/')
def index():
    return 'Hello main'

app.register_blueprint(bpa)
app.register_blueprint(bpb)

if __name__ == '__main__':
    app.debug = True
    app.run(host='127.0.0.1',port=60000)

À l'origine, la fonction est enregistrée pour l'application générée par Flask (name), mais dans le cas d'une fonction dans un autre fichier, Brueprint est enregistrée dans l'application à l'aide de register_blueprint. A ce stade, n'oubliez pas d'importer une autre fonction Brueprint au préalable.

appel

Spécifiez les éléments suivants dans l'URL

127.0.0.1:60000/      #main.py   index()
127.0.0.1:60000/A/a1  #func_A.py  app_a1()
127.0.0.1:60000/A/a2  #func_A.py  app_a2()
127.0.0.1:60000/B/b1  #func_B.py  app_b1()
127.0.0.1:60000/B/b2  #func_B.py  app_b2()

Notez que l'URL est une combinaison du préfixe lorsque Brueprint est spécifié et du chemin lorsque @ xxx.route est défini.

Autre

--Fichier fractionné à l'aide du module Il semble y avoir un moyen de diviser le fichier en utilisant flask.module. Pensez à la prochaine fois.

return redirect(url_for('bpb.b2'))

Recommended Posts

[Python] Fractionner un gros fichier Flask en utilisant Blueprint
[Python] Lire un fichier csv avec une grande taille de données à l'aide d'un générateur
Créer un fichier GIF en utilisant Pillow en Python
J'ai essayé de lire un fichier CSV en utilisant Python
Exécutez des fichiers Python à partir de HTML en utilisant Django
Créez un fichier MIDI en Python en utilisant pretty_midi
Essayez de créer un fichier compressé en utilisant Python et zlib
[Python] J'ai essayé d'exécuter un serveur local en utilisant flask
Créer une application Web avec Flask ②
Création d'un programme de fractionnement de fichiers wav
J'ai fait un Line-bot avec Python!
Créer une interface graphique python à l'aide de tkinter
Dessiner une courbe Silverstone en utilisant Python
Créer un fichier binaire en Python
Créer une application Web avec Flask ①
Extraire le fichier targz en utilisant python
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
[Python] Opération de fichier utilisant l'instruction if
Python: Introduction à Flask: création d'une application d'identification de numéro à l'aide de MNIST
Traitez le résultat de l'exécution de Splunk en utilisant Python et enregistrez-le dans un fichier
Créer un fichier power simple avec Python
Placement de Fabicon (lors de l'utilisation de Python, Flask, Heroku)
Impressions d'utilisation de Flask pendant un mois
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
Créer un gros fichier texte avec shellscript
Scraping de sites Web à l'aide de JavaScript en Python
Lancer une application Flask dans Python Anywhere
Créer un fichier deb à partir d'un package python
[Python] Gratter une table avec Beautiful Soup
[GPS] Créer un fichier kml avec Python
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Un programme qui utilise Python pour lire des fichiers indésirables
Je souhaite créer une application Web en utilisant React et Python flask
J'ai créé un fichier de configuration avec Python
Diviser le fichier mol2 avec python (-> 2016.04.17 prend également en charge le fichier sdf)
Comment lire un fichier CSV avec Python 2/3
Lire un fichier contenant des lignes brouillées en Python
Essayez d'utiliser Blueprint avec Flask pour séparer les contrôleurs
ffmpeg-Construisez un environnement python et divisez la vidéo
Comment créer un fichier JSON en Python
Créer une carte Web en utilisant Python et GDAL
Créer un fichier wav à partir du shader GLSL en utilisant python3
Afficher les avis sur les médicaments à l'aide de listes en Python
Lancer un serveur Web avec Python et Flask
Un mémorandum pour toucher Python Flask avec Heroku
Exporter la version Python3 OpenCV KeyPoint dans un fichier
Créer un fichier au format Photoshop (.psd) avec python
Faisons un module pour Python en utilisant SWIG
Lire ligne par ligne à partir d'un fichier avec Python
Je veux écrire dans un fichier avec Python
Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
L'histoire lorsqu'un utilisateur Python passe un fichier JSON
Made Mattermost Bot avec Python (+ Flask)
Fichier python de script
Commencez à utiliser Python
Traitement de fichiers Python