Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part2 durchsuchen kann

Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part2 durchsuchen kann

Überblick

Letztes Mal Ich habe ein Github-Repository erstellt, weil es eine große Sache ist, bitte Stern (Bettler) SSAM-SimilaritySearchAppwithMNIST

Wie der Titel schon sagt. Dieses Mal können Sie die Daten leicht abrufen und die Datengröße ist klein. Wenn Sie das MNIST-Bild in das MNIST einfügen, finden Sie ein ähnliches MNIST-Bild. Wenn Sie eine solche App erstellen, können Sie über die ungefähre Nachbarschaftssuche und die Flasche sprechen. Ich werde auch mein eigenes Memo über das Erstellen einer App mit schreiben. Dieses Mal werde ich nach und nach auf Flask eingehen.

Flask Erstens bin ich mit Flask nicht sehr vertraut. Ich habe nur das Gefühl, dass es relativ einfach ist, eine Webanwendung zu erstellen, und dass sie sich gut zur Demonstration eignet.

Fahren wir fort, als würden wir zur vorherigen main.py hinzufügen.

Bibliothek zu verwenden

Fügen wir zunächst die Bibliothek hinzu, die zur vorherigen main.py verwendet werden soll

from flask import Flask, render_template
from flask import request

Harova mit Flasche

まずapp.run

Schreiben wir app.run unter die Funktion main (), die den vorherigen MNIST abruft. Läuft. Übrigens, wenn debug = True gesetzt ist, wird die Seite jedes Mal neu geladen und neu geladen, wenn die .py-Datei gespeichert wird. Wenn Sie möchten, dass .html und .css dasselbe tun, gab es meiner Meinung nach eine Möglichkeit, dies zu tun. Für weitere Informationen googeln Sie bitte in das Feld vor Ihnen.

if __name__ == "__main__":
    main()
    
    app.run(debug=True)

Ich werde es tatsächlich schaffen

app.run(debug=True)

Nur weil ich das oben genannte geschrieben habe, gibt es noch keine App zum Ausführen. Lassen Sie uns eine App erstellen, die sofort ausgeführt wird.

Auch unter der main () habe ich bisher geschrieben

def main():
    #Bisher erstellte Funktionen(Folgendes wird weggelassen)

#~Von hier aus hinzufügen

app = Flask(__name__)

@app.route('/')
def index(): #Bewegen Sie sich zuerst
        return render_template('index.html',
                            message='Harova')

Lass uns schreiben. Im Moment sollten Sie eine App haben, die index.html öffnet. Sofort am Terminal

python main.py

Mal sehen. Einige Zeichen werden angezeigt. Wenn man genau hinschaut

 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Sie können sehen, dass es geschrieben ist. Mit anderen Worten, die App wird unter der lokalen http://127.0.0.1:5000/ ausgeführt. Hoppla, ich werde es diesmal in Chrom betrachten. Seien Sie also vorsichtig, es kann sich in anderen Browsern anders verhalten. Übrigens benutze ich normalerweise einen Feuerfuchs. Wie auch immer, gehen wir mit Freude und Mut zu http://127.0.0.1:5000/. ... Hmm?

jinja2.exceptions.TemplateNotFound
jinja2.exceptions.TemplateNotFound: index.html

... Ich denke, es wird eine unklare Notation wie diese geben. Das sollte es sein, die App befiehlt Ihnen, zuerst index.html zu öffnen, aber index.html ist nicht vorbereitet. Ich war nachlässig. Erstellen wir also index.html.

index.html und layout.html

Erstellen Sie zunächst einen Ordner mit dem Namen templates und erstellen Sie die Dateien index.html und layout.html darunter. Die aktuelle Dateistruktur sieht folgendermaßen aus.

.
├── blog #Notizen wie Blog-Beiträge
├── part1 #Archiv von Teil1
├── part2 #Archiv von Teil2
├── main.py #Dateien, die tatsächlich funktionieren
├── static #Der mit den Daten von MNIST und Annoy aus Teil 1
└── templates #Was ich diesmal gemacht habe
    ├── index.html
    └── layout.html

Was ist layout.html?

Spielen Sie zuerst mit dem Inhalt von layout.html. Mit Flask können Sie ein gemeinsames Layout definieren. Das ist es, was es definiert. Ich habe keine Lust, etwas Besonderes zu tun, also schreibe ich es leicht.

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <title>SAMPLE</title>
    </head>
    <body>
        <hr>
        {% block content %}
        {% endblock %}
    </body>
</html>

Es ist so. Nicht in allgemeinem HTML gefunden

{% block content %}
{% endblock %}

Es gibt eine solche Notation, aber ich werde sie vorerst hier lassen.

layout.html ist eine sogenannte Vorlage. Es ist einfach, Header-Einstellungen zu schreiben, die schwierig sind, hier viele Male zu schreiben und sie in anderen HTML-Dateien zu lesen. Es ist bequem.

Was ist index.html?

Lassen Sie uns abschließend mit dem Inhalt von index.html spielen.

Es ist jetzt noch mehr so, aber ich habe keine Lust, aufwändige Dinge zu machen, weil dies eine einfache Demo ist und ich HTML, CSS oder Javascript nicht so sehr mag (ich bin nicht vertraut genug, um die Arbeit zu erledigen). Ich mag Python einfach. Also schreibe ich den Code in einer anderen Atmosphäre als Python. Bitte lassen Sie uns in den Kommentaren wissen, wenn Sie hier etwas Seltsames finden. (Ich weiß jedoch nicht, ob es kommen wird, weil ich einen Amateur wie mich als Ziel annehme, der den Artikel lesen wird.)

Die Einführung ist etwas lang geworden. index.html. Lass uns schreiben.

{% extends "layout.html" %}

{% block content %}
<h3>Es ist der Titel</h3>
{{ message }}

{% endblock %}

Ich denke, es ist okay, mit so etwas zu beginnen. Worauf ich sofort achten möchte

{% extends "layout.html" %}

Schau dir das an. Dies ist der Teil, der layout.html lädt.

Und es steht unten geschrieben,

<h3>Es ist der Titel</h3>
{{ message }}

Und so weiter, geladen in layout.html

{% block content %}
{% endblock %}

Was dazwischen geschrieben wird, wird gelesen und gerendert. {{message}} ist der Teil, der von der Template-Engine (tabun) Jinja2 betrieben wird, die später erläutert wird. Denken Sie daran, dass wir message = 'halowa' als Rückgabewert in die index () -Funktion der ersten main.py setzen. Dies wird angezeigt. Wenn Sie dieser Variablen eine andere Zeichenfolge übergeben, wird diese angezeigt. Beim Studium der Programmierung wird es wichtig sein, sie angemessen zu ändern und zu bestätigen, dass dies mit Sicherheit der Fall ist. Bitte probieren Sie es aus.

Wenn Sie nun die obigen Dateien layout.html und index.html kopieren und einfügen, rufen Sie den Bearbeitungsbildschirm von main.py auf und versuchen Sie, die Datei zu speichern, ohne ctl + s oder command + s zu ändern. Dann wird etwas wie unten neu geladen und versucht, die Seite zu aktualisieren.

 * Restarting with fsevents reloader

Schauen Sie sich die Seite noch einmal an. 2-1.png

Wird es nicht so angezeigt?

Nächste Ziel

Inzwischen sind es bereits etwa 4000 Zeichen. Es ist nicht so weit fortgeschritten, wie ich es mir vorgestellt hatte, bevor ich über das Zeichnen eines Artikels nachgedacht habe, aber wenn ich versuche, das zu schreiben, was ich als nächstes schreiben möchte, scheint es von hier aus doppelt so lang zu sein. Halten Sie also hier an und fahren Sie das nächste Mal fort Es scheint besser, es zu wenden. Als ich den Manga schrieb, sah ich irgendwo, dass ich ein Vielfaches der Anzahl von Bänden schrieb, die ich ursprünglich erwartet hatte, aber mir wurde klar. Ich begann mit einem leichten Gefühl, aber es scheint eine lange Zeit zu sein.

Andererseits hatte ich das Gefühl, ich würde dich nicht über die langsamen Live-Videos sprechen lassen, die ich vor ein paar Mal gemacht habe, aber ist es der Unterschied, ob das Spiel das Hauptthema ist oder nicht? Wie auch immer, lassen Sie uns hier aufhören zu chatten und in die Zusammenfassung einsteigen.

Ist es diesmal möglich, mit Flask etwas wie eine Web-App zu erstellen? Ich ging zu diesem Punkt. Eigentlich frage ich mich, wie ich danach vorgehen soll, also denke ich, dass es beim nächsten Mal spät sein wird. Ich würde mich freuen, wenn ich mich so wiedersehen könnte. Bitte hinterlassen Sie einen Kommentar oder LGTM. Ich habe 2 Stunden gebraucht, um das zu schreiben und ich war müde. wir sehen uns.

(Wenn ich nicht gelangweilt oder beschäftigt bin) Fortsetzung: -> (Nächste URL)

Recommended Posts

Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part1 durchsuchen kann
Lassen Sie uns eine App erstellen, die ähnliche Bilder mit Python und Flask Part2 durchsuchen kann
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann
Erstellen Sie eine App, die Schüler mit Python errät
Lassen Sie uns mit Vue.js und Django-Rest-Framework [Teil 2] ~ Vue setup ~ eine nervenschwächende App erstellen
Lassen Sie uns mit Vue.js und Django-Rest-Framework [Teil 1] ~ Django-Setup ~ eine nervenschwächende App erstellen
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
Lassen Sie uns eine Mac-App mit Tkinter und py2app erstellen
Angrenzende Bilder mit Python Teil 1
Einführung in Python, die auch Affen verstehen können (Teil 3)
Erstellen wir eine App, die OIDC mit Azure AD authentifiziert
Einführung in Python, die auch Affen verstehen können (Teil 1)
Einführung in Python, die auch Affen verstehen können (Teil 2)
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 1 erstellen
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen Sie eine automatische Klassenverwaltungs-App für Tenho Private Room mit LINE Bot und Python Part 1
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 2 erstellen
Erstellen Sie mit LINE Bot und Python Part 2 eine automatische Klassenverwaltungs-App für Tenho Private Room
Erstellen Sie eine automatische Klassenverwaltungs-App für Tenho Private Room mit LINE Bot und Python Part ③
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 3 erstellen
Erstellen Sie mit Python + Django + AWS eine Scraping-App und wechseln Sie Jobs
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 4 erstellen
Machen wir ein IoT-Shirt mit Lambda, Kinesis, Raspberry Pi [Teil 1]
Lösen Sie mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (028 - 033 Suche nach Breitenpriorität)
Web-Suchdialog, der Schlüsselwörter automatisch vervollständigen und eingeben kann [Python] [Gtk]
Lassen Sie uns ein Bilderkennungsmodell mit Ihren eigenen Daten erstellen und spielen!
Erläuterung zum Erstellen einer Anwendung zum Anzeigen von Bildern und Zeichnen mit Python
Lassen Sie uns mit Python ein Shiritori-Spiel machen
FM-Modulation und Demodulation mit Python Part 3
POST verschieden mit Python und empfange mit Flask
Bilder mit Pupil, Python und OpenCV aufnehmen
Fraktal zum Erstellen und Spielen mit Python
Lassen Sie uns mit Python langsam sprechen
[Python] Lassen Sie uns matplotlib mit Japanisch kompatibel machen
Einfache Web-App mit Python + Flask + Heroku
FM-Modulation und Demodulation mit Python Part 2
[Python] Erstellen Sie schnell eine API mit Flask
Erstellen Sie eine englische Wort-App mit Python
Erstellen Sie ein Webframework mit Python! (1)
Importieren und Exportieren von GeoTiff-Bildern mit Python
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Lassen Sie uns mit Python 1 einen Investitionsalgorithmus entwickeln
Erstellen Sie ein Webframework mit Python! (2)
[Python] Erstellen eines Tools, mit dem Python-Dateien mit tkinter & über den Teil, der abgefangen wurde, aufgelistet, ausgewählt und ausgeführt werden können
Erstellen Sie eine Anwendung, die Formulare mithilfe von Python / Flask anstelle von DB eingibt, anzeigt und löscht.
Lassen Sie uns mit Flask eine Webanwendung zur Konvertierung von A nach B erstellen! Von Grund auf neu ...
Machen wir eine nervenschwächende App mit Vue.js und Django-Rest-Framework [Teil 3] ~ Implementierung von Nervenschwäche ~
Machen wir eine nervenschwächende Anwendung mit Vue.js und Django-Rest-Framework [Teil 6] ~ Benutzerauthentifizierung 2 ~
Lassen Sie uns mit Vue.js und Django-Rest-Framework [Teil 5] ~ Benutzerauthentifizierung ~ eine nervenschwächende Anwendung erstellen
Lösen Sie mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (024 --027 Suche nach Tiefenprioritäten)
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Erstellen Sie solche Testdaten mit Python (Teil 1)
Kausales Denken und kausale Suche von Python (für Anfänger)
Erstellen Sie eine Bildkompositions-App mit Flask + Pillow