2017-09-29 18 views
0

Je reçois des fichiers d'une entrée via une requête POST. Je voudrais prendre à ceux qui créent un GIF d'eux et le stocker directement dans une base de données sqlite.django créer gif et stocker dans DB

J'ai trouvé diverses façons en python pour créer GIFs à partir d'images et de les enregistrer dans le système de fichiers comme celui ici

VALID_EXTENSIONS = ('png', 'jpg') 

def createGIF(data, duration=0.2): 
    images = [] 
    for d in data: 
     images.append(imageio.imread(d)) 
    output_file = 'Gif-%s.gif' % datetime.datetime.now().strftime('%Y-%M-%d-%H-%M-%S') 
    imageio.mimsave(output_file, images, duration=duration) 

mais je n'a pas pu trouver un moyen de créer le GIF et soit stockez-le dans une variable ou enregistrez-le directement dans la base de données. Y at-il un moyen de créer un GIF et ne pas avoir à l'enregistrer sur le disque avant de le mettre dans une base de données?

Répondre

0

Pour la création de GIF, vous pouvez consulter cette réponse: How to create gifs with images in Python.

Et pour l'enregistrer, vous aurez besoin de ImageField.

+0

Je sais comment créer un GIF en python comme mon exemple le montre; Ce que je n'ai pas réussi à comprendre, c'est comment créer un GIF et le stocker directement dans une base de données (ou le stocker dans une variable) et ne pas du tout l'enregistrer dans le système de fichiers – wasp256

+0

Vous devez l'enregistrer quelque part. – coderanger

0

Le stockage de fichiers dans une base de données ne devrait jamais se produire. Si c'est considéré comme une solution à un problème, trouvez une base de données certifiée expert et demandez un deuxième avis.

De: Two Scopes of Django

Comme coderanger suggéré, utilisez une place FileField ou ImageField.