我想加载数据库值?使用sql alchmey。 如果我要求使用get mehtod' 127.0.0.1/api/v1/user/25 /'
数据库中有一个值(id = 5,username = jaeyeon,email = jae@naver.com)
我想展示这个专栏。
但它无法做到。我在哪里可以修复代码?
我不知道参数如何传递..请帮助我:(
from flask import Flask, url_for, redirect
from flask_sqlalchemy import SQLAlchemy
from flask_restful import reqparse, abort, Api, Resource
app = Flask(__name__)
api = Api(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:12345@localhost/catchat'
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)
password = db.Column(db.String(120), unique=True)
def __init__(self, username, email, password):
self.username = username
self.email = email
self.password = password
def __repr__(self):
return '<User %r>' % self.username
class user(Resource):
def get(self, id):
args = parser.parse_args()
user_id = db.session.query(User.id == args['id']).filter(id)
print user_id
entry = [dict(id=user.id, username=user.username, email=user.email, password=user.password)]
print entry
return entry, 200
api.add_resource(user,'/api/v1/user/<int:id>')
if __name__ == '__main__':
app.run(debug=True)
答案 0 :(得分:0)
您设置会话的方式与我以前的方式有所不同,所以我不确定这是否有所不同,但我可以看到查询的一些问题#&# 39;重新制作试试这个:
user_id = db.session.query(User).filter_by(id = args['id']).one()
假设args['id']
将产生正确的值,那么这将从User
返回单个匹配行,并且您可以使用点表示法来访问列。我在使用点表示法时看到你似乎有些偏差,请记住这些值现在存储在user_id
中,因此你必须像这样访问它们:
email = user_id.email