Wrap text
Report abuse
|
|
from django.utils import simplejson
# 其它django的引用这里省略
class ExecuteState():
"""
summary:
返回值对象,用于返回执行状态
"""
# 是否执行成功,默认是 True 成功,因为经过长期使用发现 True 用得较多
success = True
# 提示消息
message = ""
# 导致不成功的标志,错误是由谁引起的
mark = ""
# 导致不成功的对象 [object 类型]
owner = None
def json(self):
"""
summary:
得到本对象的JSON格式的字符串
"""
return simplejson.encode(str(obj2dict(self)))
def obj2dict(obj):
"""
summary:
将object转换成dict类型
"""
memberlist = [m for m in dir(obj)]
_dict = {}
for m in memberlist:
if m[0] != "_" and not callable(m):
_dict[m] = getattr(obj,m)
return _dict
def signup(request):
"""
summary:
signup 视图,URLs里面的定义这里省略
"""
state = ExecuteState()
if reuqest.POST:
# 提交视图处理
username = request.POST["username"]
realname = request.POST["realname"]
password = request.POST["password"]
password_confirm = request.POST["password_confirm"]
email = request.POST["email"]
# 重点!验证输入的内容是否符合要求
state.success = False
if len(username) < 4 or len(username) > 16:
state.message = "用户名太短,要求4-16个字符。"
state.mark = "username"
# 不符合要求了,在这直接用 return 中断并返回 state 用 simplejson.encode 将 state 转换成 JSON
# 注意!这里有用 dir(state) 这个就是我要讲的一个细节
#
return state.json()
if not regex_check_chinese(realname):
state.message = "姓名要求必须是中文。"
state.mark = "realname"
return state.json()
# 后面的提交数据库省略...
# 成功消息
state.success = True
state.message = "注册成功。"
return state
else:
# signup 地址普通打开的处理
|