0

I'm trying to implement a simple DB get utilizing SQLAlchemy. I've created a User model which successful retrieves data but I receive a 500 error when I try to JSONIFY it.

#dbFuncs.py
from flask import Flask, jsonify
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username


#index.py
from flask import Flask, jsonify
from dbFuncs import db, User
app = Flask(__name__)

@app.route("/users")
def users():
     users = User.query.all()
     print(users)
     return jsonify({"success": users})

if __name__ == "__main__":
    app.run()

My output from the console looks along the lines of:

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
[<User u'admin'>, <User u'guest'>]
127.0.0.1 - - [31/Aug/2015 15:37:03] "GET /users HTTP/1.1" 500 -

I noticed that the output appears to be a list structure, thus I've tried the built in json.dumps() but I still receive a 500 error.

The actual error is:

TypeError TypeError: <User u'admin'> is not JSON serializable

Sleep Deprived Bulbasaur
  • 2,368
  • 4
  • 21
  • 33

0 Answers0