Faisons un service de vente au comptant 8 (édition de téléchargement d'image)

J'ai remarqué que je faisais une fonction d'enregistrement et d'édition d'article. Avec l'API actuelle, plusieurs images seront téléchargées avec une API. Le temps de transmission est très long et l'expérience utilisateur est médiocre.

J'ai vérifié Mercari (http://mercari.jp) pour voir comment font les autres applications ici. Mercari semble télécharger sur le serveur chaque fois qu'une image est sélectionnée.

C'est pourquoi j'ai essayé de l'imiter. Le programme de téléchargement est terminé. Je pensais toucher Mercari, mais un jour j'aimerais aussi ajouter une fonction de traitement d'image!


#Télécharger l'image
class PutImage(UserLoginAuthRequestHandler):

    def post(self):
        if self.invalidateAccount():
            Common.writeUserResponseError(self, 401,u"Session invalide")
            return

        blob    =   self.request.get('blob')
        content_type = self.request.params['blob'].type

        blobHash = hashlib.md5(blob).hexdigest()
        gcsPath = Common.createImagePath(blobHash)
        Common.saveToGCS(gcsPath,blob,content_type)


        entity = ImageFile()
        entity.path = gcsPath
        entity.md5  = blobHash

        entity.put()

        res = dict(
            url = webapp2.uri_for('GetImage',_full=True,imageid=entity.key.id())
        )

        Common.writeUserResponseSuccess(self, res )


#Renvoie l'image spécifiée
class GetImage(UserLoginAuthRequestHandler):

    def get(self):
        imageid = int(self.request.get('imageid'))

        item = ImageFile.get_by_id(imageid)

        path = item.path

        gcs_file = gcs.open(path)
        gcs_stat = gcs.stat(path)

        self.response.content_type = gcs_stat.content_type
        self.response.content_type_params = None
        self.response.write(gcs_file.read())
        gcs_file.close()





app = webapp2.WSGIApplication(
                            [
                                webapp2.Route('/user/api/resource/putimage', PutImage,'PutImage'),
                                webapp2.Route('/user/api/resource/getimage', GetImage,'GetImage'),
                            ],
                            debug=Common.isDebug()
)

Avec ce genre de sentiment, la fonction d'enregistrement / d'édition des éléments du cercle a été ajoutée. https://github.com/nagai/freemarket/tree/20140429 La prochaine fois, nous créerons un lieu de vente au comptant.

Recommended Posts

Faisons un service de vente au comptant 8 (édition de téléchargement d'image)
Faisons un service de vente au comptant 2
Faisons un service de vente au comptant 1
Faisons un service de vente au comptant 3
Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)
Faisons un robot Discord.
Faire de Responder un démon (service)
Créons un bot LINE en utilisant divers services [ngrok edition]
Faisons une rumba distante [Matériel]
Créer un identifiant Santa à partir d'une image du Père Noël
Faisons une rumba distante [Logiciel]
Faisons une interface graphique avec python.
Faisons une rupture de bloc avec wxPython
Faisons un graphe avec python! !!
Faisons un spacon avec xCAT
Faisons un jeu de shiritori avec Python
Faire de Jupyter Notebook un service sur CentOS
Faire de Unity Accelerator un service sous Linux
Faisons la voix lentement avec Python
Faisons un langage simple avec PLY 1
Faisons un site multilingue en utilisant flask-babel
Créez un framework Web avec Python! (1)
Faisons une IA à trois yeux avec Pylearn 2
Faisons un calcul de combinaison avec Python
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Faisons un plug-in backend pour Errbot
Remplaçons UWSC par Python (5) Faisons un robot
Faisons un module pour Python en utilisant SWIG