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 地址普通打开的处理