当我用SQLAlchemy查询下面的模型时,我没有得到预期的结果。
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True)
def __repr__(self):
return '<User %r>' % self.username我直接创建了MySQL表,然后提交了一些数据:
mysql> CREATE TABLE "users" (id INTEGER, username VARCHAR(64));
mysql> select * from users;
+------+-------------+---------+
| id | username | role_id |
+------+-------------+---------+
| NULL | yzxu | NULL |
| NULL | after | NULL |
+------+-------------+---------+ 使用MySQL时,SQLAlchemy查询返回None。
>>> User.query.filter_by(username='after').all()
[None]使用SQLite时,会返回正确的用户名。
>>> db.create_all()
>>> db.session.add(User(username='after'))
>>> db.session.commit()
>>> User.query.filter_by(username='after').all()
[<User u'after'>]发布于 2015-06-01 13:56:40
MySQL表是我在没有使用SQLAlchemy的情况下手动创建的。它缺少id上设置的主键。
https://stackoverflow.com/questions/30565350
复制相似问题