Flask CRUD使用SQLAlchemy,如何加载数据列

时间:2016-06-15 02:02:59

标签: python flask flask-sqlalchemy

我想加载数据库值?使用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)

1 个答案:

答案 0 :(得分:0)

您设置会话的方式与我以前的方式有所不同,所以我不确定这是否有所不同,但我可以看到查询的一些问题#&# 39;重新制作试试这个:

user_id = db.session.query(User).filter_by(id = args['id']).one()

假设args['id']将产生正确的值,那么这将从User返回单个匹配行,并且您可以使用点表示法来访问列。我在使用点表示法时看到你似乎有些偏差,请记住这些值现在存储在user_id中,因此你必须像这样访问它们:

email = user_id.email