Comment créer un téléchargeur d'image avec Bottle (Python)

Bottle To Uploader By.Python

C'est pour les mémos, c'est donc le contenu minimum.


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

...Omis car le code ci-dessous n'est pas pertinent

Autre

Je voulais également autoriser les connexions externes, donc l'hôte d'exécution n'est pas "localhost" Décrit dans "0.0.0.0".

Il ajoute également un chemin de fichier image pour le modèle.

@ Addition (lors du téléchargement de plusieurs fichiers)

myapp.py


#Pas de changement

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

#Aucun changement ci-dessous

La clé de la mise à jour est l'utilisation de ʻenumerate`. En utilisant cela, vous pouvez ajouter des éléments indexés et stocker les données.

Référence

URL de référence du modèle

URL de référence de téléchargement d'image

URL qui a servi de référence pour le téléchargement de plusieurs fichiers

Ce qui précède est un résumé de Bottle auquel j'ai récemment fait référence. .. ..

Recommended Posts

Comment créer un téléchargeur d'image avec Bottle (Python)
Comment régler le contraste de l'image en Python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment créer un fichier JSON en Python
Comment recadrer une image avec Python + OpenCV
Créer une image avec des caractères avec python (japonais)
python3: Comment utiliser la bouteille (2)
Comment développer en Python
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
[Python] Comment faire PCA avec Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment gérer le japonais avec Python
Une alternative à `pause` en Python
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
[Python] Comment écrire une instruction if en une phrase.
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Comment créer un fichier ISO (image CD) sous Linux
Comment connaître la structure interne d'un objet en Python
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Comment créer un environnement NVIDIA Docker
Comment convertir Python en fichier exe
[Itertools.permutations] Comment créer une séquence en Python
Comment créer une instance d'une classe particulière à partir de dict en utilisant __new__ () en python
Comment utiliser BigQuery en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
Comment changer de version de Python dans cloud9
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
Comment utiliser les expressions régulières en Python
Différentes façons de créer un tableau de nombres de 1 à 10 en Python.
Comment afficher Hello World en python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
Comment envoyer une image visualisée des données créées en Python à Typetalk
[Python] Créez un linebot pour écrire le nom et l'âge sur l'image
Comment utiliser la bibliothèque C en Python
Comment recevoir des arguments de ligne de commande en Python
Comment effacer un taple dans une liste (Python)
Comment incorporer des variables dans des chaînes python
Résumé de la façon d'importer des fichiers dans Python 3
Je veux créer une fenêtre avec Python
Comment simplifier l'ajustement polymorphe restreint en python
Comment implémenter la mémoire partagée en Python (mmap.mmap)
Comment créer un agent de ressources compatible OCF
Comment obtenir de l'aide dans un shell interactif
Résumé de l'utilisation de MNIST avec Python