Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème récupération données SQLite cc Flask JSON

Sujet résolu
    21 décembre 2016 à 21:47:04

    Bonjour à tous,

    Alors voila j'ai un souci j'essaye de sérialiser en Json des données récupérées sur une BDD Sqlite le script python s’exécute mais quand j'essaye d’accéder au données j'ai une erreur 500 Internal Server Error Je suis persuadé que c'est sur la récupération des données et de la sérialisation mais je ne vois pas comment procéder... Someone can help me ? Merci d'avance :) 

    import sqlite3
    from flask import Flask, json
    
    app = Flask(__name__)
    
    class Cv:
        def __init__(self, idCv, urlCv, etat):
            self.idCv = idCv
            self.urlCv = urlCv
            self.etat = etat
    
    
    conn = sqlite3.connect('AreAppSqlBase.db')
    cursor = conn.cursor()
    
    
    def toJSON(self):
        return {"Cv": {'id': self.idCv,
                     'urlCv': self.urlCv,
                     'etat': self.etat}}
    
    
    @app.route("/getCvList")
    def getCVs():
        try:
            #Creation de la liste des cv's
            cvList = []
            cursor.execute(""" SELECT * FROM CV """)
            for row in cursor:
                cv = Cv('{0} : {1}, {2}'.format(row[0], row[1], row[2]))
                cvList.append(cv)
    
            jsonStr = json.dumps([e.toJSON() for e in cvList])
    
        except:
            print "error", sys.exc_info()[0]
    
        return jsonStr
    
    if __name__ == "__main__":
        app.run()

    Re ! C'est avec acharnement que j'ai trouvé la solution loin d'être satisfaisante pour moi ^^

    import sqlite3
    from flask import Flask, json
    
    app = Flask(__name__)
    
    class Cv:
        def __init__(self, idCv, urlCv, etat):
            self.idCv = idCv
            self.urlCv = urlCv
            self.etat = etat
    
    
    
    @app.route("/getCvList")
    def getCVs():
        try:
            conn = sqlite3.connect('AreAppSqlBase.db')
            cursor = conn.cursor()
            cursor.execute(""" SELECT * FROM CV """)
            #Creation de la liste des cv's
            resultCmd = cursor.fetchall()
            cvList = []
    
            for Cv in resultCmd:
                cvDict = {
                    'ID': Cv[0],
                    'UrlCv': Cv[1],
                    'Etat' : Cv [2]}
                cvList.append(cvDict)
            return json.dumps(Cv)
            cursor.close()
    
        except:
            print "error", sys.exc_info()[0]
    
    
    if __name__ == "__main__":
        app.run()
    


    Voila ce code me retourne seulement que la première ligne de la table de la bdd.

    Savez vous comment je peux procéder pour qu'il me retourne toutes les lignes?

    Et du coup est-ce que je peux me passer de mon objet cv?

    Merci :)

    -
    Edité par b0uill0n66 22 décembre 2016 à 13:49:24

    • Partager sur Facebook
    • Partager sur Twitter

    Licence Pro Dev Mobile  - Apprenti Manager Systèmes Informatiques et Robotiques, IMERIR Perpignan

    Problème récupération données SQLite cc Flask JSON

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown