【发布时间】:2014-02-26 23:32:11
【问题描述】:
我从 Flask sqlalchemy 开始,但我不明白主页的演示 (here) 是如何工作的。
这将创建结构:
>>> from yourapplication import db
>>> db.create_all()
但我不明白这些用户的存储位置。
>>> from yourapplication import User
>>> admin = User('admin', 'admin@example.com')
>>> guest = User('guest', 'guest@example.com')
>>> db.session.add(admin)
>>> db.session.add(guest)
>>> db.session.commit()
因为如果我这样做Select * from user;
我会得到:
test=# \dt
List of relations
Schema | Name | Type | Owner
--------+------+-------+----------
public | user | table | postgres
(1 row)
test=# select * from user;
current_user
--------------
postgres
(1 row)
但是输出是预期的:
>>> users = User.query.all()
>>> [<User u'admin'>, <User u'guest'>]
那么,这里发生了什么?用户是否存储在缓存中?记忆?因为我在user 表中没有看到任何管理员或访客。
【问题讨论】:
-
您可能应该在某处配置您的数据库连接(实际上,我只是单击了链接,就像在页面中间。
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db') -
@njzk2 'postgresql://postgres:xxx@localhost/test',如果我不设置这个conf,显然程序会报错。
-
不一定。默认的 sqlite 路径效果很好。
-
@njzk2 好的,但问题不在于。我有预期的输出,我只是想了解用户信息存储在哪里。
-
您的 postgresql 表确实与预期的模式不相似。因此,它存储在其他地方。你确定它不在 sqlite 文件中吗?
标签: python postgresql sqlalchemy flask flask-sqlalchemy