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.