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