[Python] Teilen Sie eine große Flask-Datei mit Blueprint

Einführung

Beim Erstellen einer WEB-Anwendung mit Flask, einem Webframework von Python, nimmt die Anzahl der Zeilen in der Flask-Datei tendenziell zu, sodass ich die Dateiaufteilung in Betracht gezogen habe. Es scheint, dass das Teilen von Dateien mit Brueprint in Flask üblich ist, und dieses Mal habe ich Blueprint verwendet, um die Datei zu teilen.

Verzeichnisaufbau

├── 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

Das Hauptprogramm ist main.py. Außerdem wird angenommen, dass es Komponenten A und B gibt. Func_A.py und func_B.py in jeder Komponente sind Dateien, die Flask verwenden.

In flask wird die HTML-Datei unter der Vorlage gespeichert. Diesmal wurde jedoch ein Verzeichnis für jede Komponente unter der Vorlage erstellt und die HTML-Datei gespeichert.

Quellcode

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)

Ursprünglich ist die Funktion für die von Flask generierte App registriert (name). Bei einer Funktion in einer anderen Datei wird Brueprint jedoch mit register_blueprint in der App registriert. Vergessen Sie zu diesem Zeitpunkt nicht, im Voraus eine andere Funktion Brueprint zu importieren.

Anruf

Geben Sie in der URL Folgendes an

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()

Beachten Sie, dass die URL eine Kombination aus Präfix, wenn Brueprint angegeben ist, und Pfad, wenn @ xxx.route definiert ist.

Andere

--Dateiaufteilung mit Modul Es scheint eine Möglichkeit zu geben, die Datei mit flask.module zu teilen. Überlegen Sie das nächste Mal.

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

Recommended Posts

[Python] Teilen Sie eine große Flask-Datei mit Blueprint
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
Erstellen Sie eine GIF-Datei mit Pillow in Python
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Führen Sie Python-Dateien mit Django aus HTML aus
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
Erstellen einer Webanwendung mit Flask ②
Erstellen eines WAV-Dateiteilungsprogramms
Ich habe einen Line-Bot mit Python gemacht!
Erstellen Sie mit tkinter eine Python-GUI
Zeichnen einer Silbersteinkurve mit Python
Erstellen Sie eine Binärdatei in Python
Erstellen einer Webanwendung mit Flask ①
Extrahieren Sie die Targz-Datei mit Python
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
[Python] Dateivorgang mit der if-Anweisung
Python: Einführung in Flask: Erstellen einer Nummernidentifizierungs-App mit MNIST
Verarbeiten Sie das Ausführungsergebnis von Splunk mit Python und speichern Sie es in einer Datei
Erstellen einer einfachen Power-Datei mit Python
Platzierung von Fabicon (bei Verwendung von Python, Flask, Heroku)
Eindrücke von der Verwendung von Flask für einen Monat
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
Erstellen Sie eine große Textdatei mit Shellscript
Scraping von Websites mit JavaScript in Python
Starten Sie eine Flask-App in Python Anywhere
Erstellen Sie eine Deb-Datei aus einem Python-Paket
[Python] Eine Tabelle mit Beautiful Soup kratzen
[GPS] Erstellen Sie eine kml-Datei mit Python
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Ein Programm, das Python zum Abspielen von Junk verwendet
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich habe mit Python eine Einstellungsdatei erstellt
Mol2-Datei mit Python teilen (-> 17.04.2016. Unterstützt auch SDF-Datei)
Lesen einer CSV-Datei mit Python 2/3
Lesen Sie eine Datei mit verstümmelten Linien in Python
Versuchen Sie, Blueprint with Flask zu verwenden, um Controller zu trennen
ffmpeg-Erstellen Sie eine Python-Umgebung und teilen Sie das Video
So erstellen Sie eine JSON-Datei in Python
Erstellen Sie eine Webmap mit Python und GDAL
Erstellen Sie mit python3 eine WAV-Datei aus dem GLSL-Shader
Anzeigen von Arzneimittelbewertungen mithilfe von Listen in Python
Starten Sie einen Webserver mit Python und Flask
Ein Memorandum zum Berühren von Python Flask mit Heroku
Exportieren Sie PythonC Version OpenCV KeyPoint in eine Datei
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Lesen Sie mit Python Zeile für Zeile aus der Datei
Ich möchte mit Python in eine Datei schreiben
Dateidialog mit Python-GUI öffnen (tkinter.filedialog)
Führen Sie Python-Skripte in Excel aus (mit xlwings).
Die Geschichte, wenn ein Python-Benutzer eine JSON-Datei übergibt
Mattermost Bot mit Python gemacht (+ Flask)
Skript-Python-Datei
Starten Sie Python
Python-Dateiverarbeitung