【发布时间】:2020-06-04 04:05:11
【问题描述】:
我的 python 版本是 2.7,Flask 版本是 0.10。 下面是我的脚本:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask import request, jsonify
from flask import Response
import json
from pprint import pprint
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:postgres@localhost/postgres'
app.debug = True
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
@app.route('/users', methods=['GET'])
def get_users():
myUsers = User.query.all()
pprint(myUsers)
return jsonify({'users': myUsers})
@app.route('/post_user', methods=['POST'])
def post_user():
data = request.get_json()
user = User(data['username'], data['email'])
db.session.add(user)
db.session.commit()
return jsonify(**data)
if __name__ == '__main__':
app.run()
后调用工作正常,我可以看到数据库中的数据。但是当我尝试获取用户时,出现以下错误:
'TypeError: <User u'John' is not JSON serializable // Werkzeug Debugger'.
“打印”的输出如下:
[<User u'John', <User u'Jane']
它不会打印列表中的整个对象,即 id、用户名和电子邮件。我不确定这里有什么问题。我已经阅读了许多关于使用 Flask 恢复列表的 stackoverflow 帖子,但没有任何效果。另外,我需要使用的版本很旧,所以这也是一个限制。
【问题讨论】:
标签: python postgresql flask sqlalchemy