在文档中巧妙地使用sql__
sqlfunc的Python项目详细描述
在doc中使用sql的聪明东西
功能
- 内存或文件备份数据库(sqlite)
- 后处理返回数据
- 用户定义的功能
示例
鉴于此:
''' CREATE TABLE IF NOT EXISTS users ( userid INTEGER PRIMARY KEY, username TEXT UNIQUE NOT NULL, bcrypt BLOB NOT NULL ); '''fromsqlfuncimportsqlinit,sqludf,sqlfunc__database__=':memory:'# default@sqludfdefbcrypt_hash(password):# call to library herereturnb'$2b$12$.OjbRwRejxw92C89sA6JkOVrhmQzGsjoyCf1ofIN9hUNdHFufb3ty'@sqludfdefbcrypt_verify(password,bcrypthash):# call to library herereturnTrue@sqlfuncdefadd_user(username,password):''' INSERT OR IGNORE INTO $$$ (username, bcrypthash) VALUES (:username, bcrypt_hash(:password)); '''@sqlfunc(post=lambdax:bool(list(x)))deflogin(username,password):''' SELECT 1 FROM users WHERE username=:username AND bcrypt_verify(:password, bcrypt); '''sqlinit()
现在您可以这样做:
>>>importexample_users>>>example_users.add_user('root','password123')>>>example_users.login('root','secret')False>>>example_users.login('root','password123')True>>>example_users.list_users()['root']>>>'bcrypt_verify'indir(example_users)# helper functions are NOT exportedFalse
这个图书馆是麻省理工学院授权的。