-
Notifications
You must be signed in to change notification settings - Fork 0
/
models.py
57 lines (43 loc) · 1.47 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# coding: u8
import re
from pokers import g, utils
rds = g.rds
class User:
# %s代表uid
_username = 'user:%s:username'
_password = 'user:%s:password'
_nickname = 'user:%s:nickname'
_point = 'user:%s:point'
# %s代表username
_uid = 'user:%s:id'
RE_USERNAME = re.compile(r'^[0-9a-zA-Z]{2,}$')
@staticmethod
def get_uid_by_username(username):
return rds.get(User._uid % username)
@staticmethod
def save(username, password, nickname):
password = utils.md5(password)
import uuid
uid = uuid.uuid4().hex
rds.set(User._uid % username, uid)
rds.set(User._username % uid, username)
rds.set(User._password % uid, password)
rds.set(User._nickname % uid, nickname)
rds.set(User._point % uid, 0)
@staticmethod
def get_nickname_by_uid(uid):
return rds.get(User._nickname % uid)
@staticmethod
def is_password_valid(uid, password):
return rds.get(User._password % uid) == utils.md5(password)
@staticmethod
def is_valid(**kwargs):
username = kwargs.pop('username')
if not User.RE_USERNAME.match(username):
return 'username', u'用户名只能是数字字母组成,字符数不少于2'
password = kwargs.pop('password')
if not password:
return 'password', u'请输入密码'
nickname = kwargs.pop('nickname')
if not nickname:
return 'nickname', u'请输入昵称'