python -m venv myenv
in der Befehlszeile ausAls nächstes müssen wir die Funktion des Bild -Uploads implementieren. Der Benutzer wählt das Bild auf der Front-End-Seite aus und lädt sie hoch. Nach dem Erhalt des Bildes speichert das Back-End es dem lokalen Uploads-Verzeichnis und speichert den Titel und den Dateinamen in der Datenbank.
@App.Route ('/Upload', Methods = ['Post']) Def upload (): Datei = Request.files.get ("Bild") Wenn Datei: img = image.open (Datei) img.save ("Uploads/" + Datei.FileName) Image = Image (title = request.form.get ("title"), fileName = file.FileName) db.session.add (Bild) db.session.commit () Rückgabe "Laden Sie erfolgreich hoch!" anders: Rückgabe "Upload fehlgeschlagen!"
Implementieren Sie dann die Bildanzeigefunktion. Benutzer können alle gespeicherten Bilder über den Zugriffs- /Bilderpfad anzeigen und klicken, um die Details eines einzelnen Bildes anzuzeigen.
@App.Route ('/Images') Def Images (): Bilder = Bild.Query.All () return render_template ('images.html', Bilder = Bilder) @App.route ('/Bild/<int:image_id> ')) Def image_detail (Image_id): Image = Image.Query.get (Image_id) return render_template ('image_detail.html', Image = Bild)
Als nächstes wird die Funktion der Bilddeletion implementiert. Benutzer können das angegebene Bild löschen, indem sie auf der Seite auf "Löschen" klicken.
@app.route ('/delete/<int:image_id> ')) Def Delete_image (Image_id): Image = Image.Query.get (Image_id) db.session.delete (Bild) db.session.commit () Return Redirect ('/Images')
Um eine bessere Benutzererfahrung zu bieten, können Front-End-Seiten einen geeigneten HTML- und CSS-Code hinzufügen, um dynamischen Inhalt mithilfe der Jinja2-Template-Engine zu rendern.
<!-- images.html --> { % für Bild in Bildern %} <div> <a href="{{ url_for('image_detail', image_id=image.id) }}">Details anzeigen</a> <a href="{{ url_for('delete_image', image_id=image.id) }}">Löschen</a> </div> { % endfor %}
<!-- image_detail.html --> <h1>{{image.title}}</h1>
Über das obige Codebeispiel können wir sehen, wie Sie Python verwenden, um die Bildverwaltungsfunktion des CMS -Systems zu schreiben. Dies ist zwar nur ein einfaches Beispiel, es zeigt die grundlegende Verwendung des Flask -Frameworks, der SQLalchemy -Datenbank -Tools und der PIL -Image -Verarbeitungsbibliothek. In der tatsächlichen Entwicklung erfordert das CMS -System möglicherweise mehr Funktionen und komplexe Logik, und Entwickler können auf dieser Grundlage erweitert und optimieren.