数据层只管数

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →

补全:数据层插一条

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →

补全:业务层先校验

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →

补全:数据层数一数

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →

密码为什么不明文存

注册时把密码存进库,绝不能明文存,而要存它的摘要,因为【0】。

开始练习 →

登录是怎么验的

用户登录时,系统判断密码对不对的做法是【0】。

开始练习 →

重名注册怎么办

两个人想用同一个名字注册,靠 name 列的唯一约束,结果是【0】。

开始练习 →

注册两次同名再登录

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →

补全:把密码变摘要

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →

补全:注册挡重名

(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、

开始练习 →