So erstellen Sie einen Bild-Uploader mit Bottle (Python)

Bottle To Uploader By.Python

Es ist für Memos gedacht, es ist also der Mindestinhalt.


Verschiedene Ver.


myapp.py


from bottle import route, run, template, request, static_file, url, get, post, response, error, abort, redirect, os
import sys, codecs
import bottle.ext.sqlalchemy
import sqlalchemy
import sqlalchemy.ext.declarative

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

@route("/")
def html_index():
    return template("index", url=url)

@route("/static/<filepath:path>", name="static_file")
def static(filepath):
    return static_file(filepath, root="./static")

@route("/static/img/<img_filepath:path>", name="static_img")
def static_img(img_filepath):
    return static_img(img_filepath, root="./static/img/")

#File Upload
@get('/upload')
def upload():
    return '''
        <form action="/upload" method="post" enctype="multipart/form-data">
            <input type="submit" value="Upload"></br>
            <input type="file" name="upload"></br>
        </form>
    '''

@route('/upload', method='POST')
def do_upload():
    upload = request.files.get('upload', '')
    if not upload.filename.lower().endswith(('.png', '.jpg', '.jpeg')):
        return 'File extension not allowed!'
    save_path = get_save_path()
    upload.save(save_path)
    return 'Upload OK. FilePath: %s%s' % (save_path, upload.filename)

def get_save_path():
    path_dir = "./static/img/"
    return path_dir

run(host="0.0.0.0", port=8000, debug=True, reloader=True)

...Wird weggelassen, da der Code unten nicht relevant ist

Andere

Ich wollte auch externe Verbindungen zulassen, damit der ausgeführte Host nicht "localhost" ist. Beschrieben in "0.0.0.0".

Außerdem wird ein Bilddateipfad für die Vorlage hinzugefügt.

@Addition (beim Hochladen mehrerer Dateien)

myapp.py


#Keine Änderung

#File Upload
@get('/upload')
def upload():
    return '''
        <form action="/upload" method="post" enctype="multipart/form-data">
            <input type="submit" value="Upload"></br>
-           <input type="file" name="upload"></br>
+           <input multiple="multiple" name="upload[image_file_name][]" type="file" accept="image/*" id="upload">
        </form>
    '''

@route('/upload', method='POST')
def do_upload():
-   upload = request.files.get('upload', '')
+   pload_files = request.files.getall('upload[image_file_name][]')

-   if not upload.filename.lower().endswith(('.png', '.jpg', '.jpeg')):
-       return 'File extension not allowed!'
-   save_path = get_save_path()
-   upload.save(save_path)
-   return 'Upload OK. FilePath: %s%s' % (save_path, upload.filename)
+   save_path = get_save_path()
+   for count, uplad_file in enumerate(upload_files):
+       upload_img = uplad_file
+       if not upload_img.filename.lower().endswith(('.png', '.jpg', '.jpeg')):
+           return template("no {{uplad_file}}", uplad_file=uplad_file)
+       upload_img.save(save_path)
+   return 'Upload OK. FilePath: %s ImageFiles:%s' % (save_path, pload_files)

#Keine Änderung unten

Der Schlüssel zum Update ist die Verwendung von "Aufzählung". Auf diese Weise können Sie indizierte Elemente hinzufügen und die Daten speichern.

Referenz

Vorlagenreferenz-URL

Referenz-URL für das Hochladen von Bildern

URL, die als Referenz für das Hochladen mehrerer Dateien diente

Das Obige ist eine Zusammenfassung von Flasche, auf die ich kürzlich Bezug genommen habe. .. ..

Recommended Posts

So erstellen Sie einen Bild-Uploader mit Bottle (Python)
So passen Sie den Bildkontrast in Python an
Verwendung der Python-Bildbibliothek in der Python3-Serie
So erstellen Sie eine JSON-Datei in Python
So beschneiden Sie ein Bild mit Python + OpenCV
Erstellen Sie ein Bild mit Zeichen mit Python (Japanisch)
python3: Verwendung der Flasche (2)
Wie man in Python entwickelt
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
[Python] Wie man PCA mit Python macht
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
Eine Alternative zu "Pause" in Python
So tauschen Sie Elemente in einem Array in Python aus und wie kehren Sie ein Array um.
[Python] Wie schreibe ich eine if-Anweisung in einen Satz?
[Python Kivy] So erstellen Sie mit pyinstaller eine exe-Datei
So erstellen Sie eine ISO-Datei (CD-Image) unter Linux
Wie Sie die interne Struktur eines Objekts in Python kennen
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
So erstellen Sie eine NVIDIA Docker-Umgebung
So konvertieren Sie Python in eine exe-Datei
[Itertools.permutations] So löschen Sie eine Sequenz in Python
So erstellen Sie eine Instanz einer bestimmten Klasse aus dict mit __new__ () in Python
So arbeiten Sie mit BigQuery in Python
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
So überprüfen Sie die Version von opencv mit Python
So wechseln Sie die Python-Version in Cloud9
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus
Verwendung regulärer Ausdrücke in Python
Verschiedene Möglichkeiten, um in Python ein Array von Zahlen von 1 bis 10 zu erstellen.
So zeigen Sie Hello World in Python an
Verwendung ist und == in Python
Wie schreibe ich Ruby to_s in Python
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
[Python] Erstellen Sie einen Linebot, um den Namen und das Alter auf das Bild zu schreiben
Verwendung der C-Bibliothek in Python
So empfangen Sie Befehlszeilenargumente in Python
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
Zusammenfassung zum Importieren von Dateien in Python 3
Ich möchte mit Python ein Fenster erstellen
So vereinfachen Sie die eingeschränkte Polypoly-Anpassung in Python
So implementieren Sie Shared Memory in Python (mmap.mmap)
So erstellen Sie einen OCF-kompatiblen Ressourcenagenten
So erhalten Sie Hilfe in einer interaktiven Shell
Zusammenfassung der Verwendung von MNIST mit Python