正文
String
(
120
),
unique
=
True
)
def
__init__
(
self
,
username
,
email
)
:
self
.
username
=
username
self
.
email
=
email
def
__repr__
(
self
)
:
return
'
'
%
self
.
username
这里有几点需要注意的是:
-
app 应用配置项 SQLALCHEMY_DATABASE_URI 指定了 SQLAlchemy 所要操作的数据库,这里我们使用的是 SQLite,数据库 URL 以 sqlite:/// 开头,后面的 db/users.db 表示数据库文件存放在当前目录的 db 子目录中的 users.db 文件。当然,你也可以使用绝对路径,如 /tmp/users.db 等。
-
db 对象是 SQLAlchemy 类的实例,表示程序使用的数据库。
-
我们定义的 User 模型必须继承自 db.Model,这里的模型其实就对应着数据库中的表。其中,类变量__tablename__ 定义了在数据库中使用的表名,如果该变量没有被定义,Flask-SQLAlchemy 会使用一个默认名字。
接着,我们创建表和数据库。为此,我们先在当前目录创建 db 子目录和新建一个 users.db 文件,然后在交互式 Python shell 中导入 db 对象并调用 SQLAlchemy 类的 create_all() 方法:
$
mkdir
db
$
python
>>>
from app import
db
>>>
db
.
create_all
()
我们验证一下,”users” 表是否创建成功:
$
sqlite3
db
/
users
.
db
# 打开数据库文件
SQLite
version
3.8.10.2
2015
-
05
-
20
18
:
17
:
19
Enter
".help"
for
usage
hints
.
sqlite
>
.
schema
users
# 查看 "user" 表的 schema
CREATE TABLE users
(
id
INTEGER
NOT
NULL
,
username VARCHAR
(
80
),