def register(request): if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "please check the content" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "password are different!" return render(request, 'register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = 'username has been used!' return render(request, 'register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = 'the address has been registed!' return render(request, 'register.html', locals()) new_user = models.User() new_user.name = username new_user.password = password1 new_user.email = email new_user.sex = sex new_user.save() return redirect('/login/') register_form = forms.RegisterForm() return render(request, 'register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect("/index/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容!" if register_form.is_valid(): # 获取数据 username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: # 判断两次密码是否相同 message = "两次输入的密码不同!" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: # 用户名唯一 message = '用户已经存在,请重新选择用户名!' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: # 邮箱地址唯一 message = '该邮箱地址已被注册,请使用别的邮箱!' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.password = hash_code(password1) # 使用加密密码 new_user.email = email new_user.sex = sex new_user.save() return redirect('/login/') # 自动跳转到登录页面 register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): #先实例化一个RegisterForm的对象,然后使用is_valide()验证数据,再从cleaned_data中获取数据 if request.session.get('is_login', None): # 登录状态不允许注册。你可以修改这条原则! return redirect("/index/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容!" if register_form.is_valid(): # 获取数据 username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] sex = register_form.cleaned_data['sex'] if password1 != password2: # 判断两次密码是否相同 message = "两次输入的密码不同!" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: # 用户名唯一 message = '用户已经存在,请重新选择用户名!' return render(request, 'login/register.html', locals()) # 当一切都OK的情况下,创建新用户 new_user = models.User() new_user.name = username new_user.password = password1 new_user.sex = sex new_user.save() return redirect('/login/index.html/') # 自动跳转到登录页面 register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect("/index/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容!" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "两次输入的密码不一致!" return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = "该邮箱地址已被注册,请使用别的邮箱!" return render(request, 'login/register.html', locals()) #一切ok的情况下,创建新用户 new_user = models.User() new_user.name = username new_user.password = hash_code(password1) new_user.email = email new_user.sex = sex new_user.save() code = make_confirm_string(new_user) send_email(email, code) return redirect('/login/') #自动跳转到登录页面 register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def post(self, username, email, password, *args, **kwargs): """Register task """ user = models.User.find_by([("email", email)], find_one=True) if user: raise exceptions.ActionError("User existed") user = models.User(username, email, password) user.save() return {"message": "success"}
def user_create(): user = login_models.User( username=request.form.get('username'), password=utils.hash_password(request.form.get('password')), role_id=request.form.get('role_id'), ) db.session.add(user) db.session.commit() return jsonify(user.serialize()), 201
def register(request): if request.session.get('is_login', None): return redirect("login:index") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容" print(register_form) print(1111111) if register_form.is_valid(): username = register_form.cleaned_data.get("username") password1 = register_form.cleaned_data.get("password1") password2 = register_form.cleaned_data.get("password2") email = register_form.cleaned_data.get("email") sex = register_form.cleaned_data.get("sex") if password1 != password2: message = "两次密码不一致" return render(request, "login/register.html", locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = "用户名已经存在" return render(request, "login/register.html", locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = "该邮箱已经被注册" return render(request, "login/register.html", locals()) # 把验证通过的注册信息存入数据库 new_user = models.User() new_user.name = username # 将注册的密码转为十六进制数据存入到数据库 new_user.password = diy_method.hash_code(password1) new_user.email = email new_user.sex = sex new_user.save() code = diy_method.make_confirm_string(new_user) diy_method.send_email(email, code) message = "请前往邮箱进行确认!" return render(request, "login/confirm.html", locals()) """ # 让用户在注册过后跳转到首页不需要再次登录 user = models.User.objects.get(name=new_user.name) # 通过下面的语句,我们往session字典里面写入用户状态和数据 request.session['is_login'] = True request.session['user_id'] = user.id request.session['user_name'] = user.name return redirect("login:index") """ return render(request, "login/register.html", locals()) register_form = forms.RegisterForm() return render(request, "login/register.html", locals())
def register(request): if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容!" if register_form.is_valid(): username = register_form.cleaned_data.get('username') password1 = register_form.cleaned_data.get('password1') password2 = register_form.cleaned_data.get('password2') email = register_form.cleaned_data.get('email') sex = register_form.cleaned_data.get('sex') # 两次输入的密码必须相同 if password1 != password2: message = '两次输入的密码不同!' return render(request, 'login/register.html', locals()) else: # 不能存在相同用户名和邮箱 same_name_user = models.User.objects.filter(name=username) if same_name_user: message = '用户名已经存在' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '该邮箱已经被注册了!' return render(request, 'login/register.html', locals()) # 利用ORM的API,创建一个用户实例,然后保存到数据库内 new_user = models.User() new_user.name = username new_user.password = hash_code(password1) # hash加密 # new_user.password = password1 new_user.email = email new_user.sex = sex new_user.save() code = make_confirm_string(new_user) send_email(email, code) message = '请前往邮箱进行确认!' return render(request, 'login/confirm.html', locals()) else: return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect('user_index') if request.method == 'POST': reg_form = forms.RegisterForm(request.POST) message = '请检查填写的内容!' if reg_form.is_valid(): username_f = reg_form.cleaned_data.get('username') email_f = reg_form.cleaned_data.get('email') password1 = reg_form.cleaned_data.get('password1') password2 = reg_form.cleaned_data.get('password2') if password1 != password2: message = '两次输入的密码不同!' return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter( username=username_f) if same_name_user: message = '用户名已经存在' return render(request, 'login/register.html', locals()) same_name_user = models.User.objects.filter(email=email_f) if same_name_user: message = '邮箱已经存在' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.username = username_f new_user.email = email_f new_user.password = hash_code(password1) new_user.save() # 保存提交用户信息 # 增加邮件地址验证 把新注册用户制作出code验证码 code = make_confirm_string(new_user) send_email(email_f, code) message = '请前往邮箱进行确认!' return render(request, 'login/confirm.html', locals()) else: return render(request, 'login/register.html', locals()) reg_form = forms.RegisterForm(request.POST) return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): # 登录状态不允许注册。你可以修改这条原则! return redirect("/index/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容!" if register_form.is_valid(): # 获取数据 username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] print({"password1": password1, "password2": password2}) if password1 != password2: # 判断两次密码是否相同 message = "两次输入的密码不同!" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) print("same_name_user:"******"请前往注册邮箱,进行邮件确认!" return render(request, 'login/confirm.html', locals()) else: register_form = forms.RegisterForm(request.POST) return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = '请检查填写内容' if register_form.is_valid(): username = register_form.cleaned_data.get('username') password1 = register_form.cleaned_data.get('password1') password2 = register_form.cleaned_data.get('password2') email = register_form.cleaned_data.get('email') sex = register_form.cleaned_data.get('sex') if password1 != password2: message = '两次密码输入不一致' return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = '用户已存在' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '改邮箱已被注册' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.password = hash_code(password1) new_user.email = email new_user.sex = sex new_user.save() code = make_confirm_string(new_user) send_email(email, code) message = '请前往邮箱确认' return render(request, 'login/confirm.html', locals()) # return redirect('/login/') else: return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login',None): return redirect("/autoplat/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写内容" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "2次输入的密码不一致" return render(request,'login/register.html',locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message="用户已经存在,请重新选择用户名" return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '该邮箱地址已被注册,请使用别的邮箱!' return render(request, 'login/register.html', locals()) current_site = get_current_site(request) domain=current_site.domain new_user = models.User() salt = set_salt() new_user.name = username new_user.salt = salt new_user.password = hash_code(password1, salt) new_user.email = email new_user.sex = sex new_user.save() code = make_confirm_string(new_user) send_email(email,code,domain,username) message = '请前往注册邮箱,进行邮箱确认!' return render(request, 'login/confirm.html', locals()) return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): #登录状态不允许注册 if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = "所有内容均需填写!" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] try: same_name = models.User.objects.get(username=username) except: same_name = False try: same_email = models.User.objects.get(email_address=email) except: same_email = False if same_name: message = "用户名已存在" return render(request, 'login/register.html', locals()) if same_email: message = '该邮箱已注册' return render(request, 'login/register.html', locals()) if password1 != password2: message = "密码不一致" return render(request, 'login/register.html', locals()) # 一切正常的情况下 new_user = models.User() new_user.username = username new_user.password = password1 new_user.email_address = email new_user.save() code = make_confirm_string(new_user) send_email(email, code) message = "注册成功,现在您可以登陆了" login_form = forms.UserForm() return render(request, "login/login.html", locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): # return redirect("/index/") return redirect(reverse('index')) if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: # 判断两次密码输入的是不是一样 message = "两次输入的密码不同" return render(request, 'login/register.html', {'message': message, "register_form": register_form}) else: same_name_user = models.User.objects.filter(nick_name=username) if same_name_user: # 用户名唯一 message = '用户已经存在,请重新选择用户名!' return render(request, 'login/register.html', {'message': message, "register_form": register_form}) same_email_user = models.User.objects.filter(email=email) if same_email_user: # 邮箱唯一 message = '该邮箱地址已被注册,请使用别的邮箱!' return render(request, 'login/register.html', {'message': message, "register_form": register_form}) # 看起来数据符合我们的要求了,下面创建用户 new_user = models.User() new_user.nick_name = username new_user.password = hash_code(password1) # 或者password2 new_user.email = email new_user.sex = sex new_user.save() #发送激活验证码到邮箱 send_verify_code(email) message = '请前往注册邮箱,进行邮件确认!' # return redirect("/login/", {"message": message}) # return redirect(reverse("login")) # 跳转到登录页面 return render(request, 'login/active.html', {"message": message}) # 跳转到等待邮件确认页面。 register_form = forms.RegisterForm() return render(request, 'login/register.html', {"register_form": register_form})
def register(request): if request.session.get('is_login', None): return redirect("/index") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "两次输入的密码不一致" return render(request, "login/register.html", locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = "用户已存在,请重新设置用户名" return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = "该邮箱地址已被注册,请登录" return redirect('/login') new_user = models.User() new_user.name = username new_user.password = common.hash_code(password1) new_user.email = email new_user.sex = sex new_user.save() code = common.make_confirm_string(new_user) common.send_email(email, code) message = "请前往注册邮箱,进行邮箱确认!" return render(request, 'login/confirm.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect('/index/') if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = '请检查填写的内容!' if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = '两次输入的密码不相同!' return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = '用户名已经存在,请重新选择!' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '该邮箱地址已经被注册,请使用别的邮箱!' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.password = hash_code(password2) new_user.email = email new_user.sex = sex new_user.save() code = make_confirm_string(new_user) send_email(email, code) message = '请前往注册邮箱,进行确认!' return render(request, 'login/confirm.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = form.RegisterForm(request.POST) message = "請檢查填寫內容!" if register_form.is_valid(): username = register_form.cleaned_data.get('username') password1 = register_form.cleaned_data.get('password1') password2 = register_form.cleaned_data.get('password2') email = register_form.cleaned_data.get('email') sex = register_form.cleaned_data.get('sex') identify = register_form.cleaned_data.get('identify') c_name = register_form.cleaned_data.get('c_name') if password1 != password2: message = '两次输入的密码不同!' return render(request, 'register_base.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = '用户名已经存在' return render(request, 'register_base.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = 'email已存在!' return render(request, 'register_base.html', locals()) new_user = models.User() new_user.name = username new_user.password = password1 new_user.email = email new_user.sex = sex new_user.identify = identify new_user.c_name = c_name new_user.save() return redirect('login') else: return render(request, 'register_base.html', locals()) register_form = form.RegisterForm() return render(request, 'register_base.html', locals())
def register(request): if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容" if register_form.is_valid(): username = register_form.cleaned_data.get('username') password1 = register_form.cleaned_data.get('password1') password2 = register_form.cleaned_data.get('password2') email = register_form.cleaned_data.get('email') sex = register_form.cleaned_data.get('sex') address = register_form.cleaned_data.get('address') if password1 != password2: message = "两次输入密码不同!" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = "用户名已经存在!" return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '该邮箱已经被注册了!' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.password = password1 new_user.email = email new_user.sex = sex new_user.address = address new_user.save() return redirect('/login/') else: return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html')
def register(request): if request.session.get('is_login', None): # 已经登录的不能注册 return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = '请检查填写的内容。' if register_form.is_valid(): username = register_form.cleaned_data['username'] # 获取注册表单(字典结构)中填写的合法数据,存放在变量中 password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "两次输入的密码不一致!" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = '用户已经存在,重新输入一个用户名.' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '该电子邮箱已经被注册,请重新填入一个.' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.password = hash_code(password1) # 加密密码 new_user.email = email new_user.sex = sex new_user.save() code = make_confirm_string(new_user) send_email(email, code) message = '请前往注册邮箱,点击链接进行邮件确认。' return render(request, 'login/confirm.html', locals()) # 显示邮件确认页面 # GET方式时 register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = '请检查您输入的内容' if register_form.is_valid(): username = register_form.cleaned_data['username'] password = register_form.cleaned_data['password1'] password1 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password != password1: message = '二次密码不一样,请重新输入' return render(request, 'login/register.html', locals()) else: try: same_user_name = models.User.objects.get(name=username) except: same_user_name = False if same_user_name: message = '用户名已存在' return render(request, 'login/register.html', locals()) try: same_email_name = models.User.objects.get(email=email) except: same_email_name = False if same_email_name: message = '邮箱以被注册' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.password = hash_cold(password1) new_user.email = email new_user.sex = sex new_user.save() return redirect('/login/') register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def signup(request): context = {} context['message'] = '' if request.method == 'POST': user_email = request.POST['email'] user_password = request.POST['password'] subscribers = models.User.objects.filter( email__exact=user_email).filter(password__exact=user_password) if subscribers.count() == 1: context['message'] = 'You are already registered please sign in!' else: user = models.User(email=user_email, password=user_password) user.save() context['message'] = 'You are successfully registered now !' else: pass return render(request, 'login/signup.html/', context)
def register(request): if request.session.get('is_login', None): return redirect("/index/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写的内容" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "两次输入的密码不一致" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(username=username) if same_name_user: message = "该用户名已存在" return render(request, 'login/register.html', locals()) same_email = models.User.objects.filter(email=email) if same_email: message = "该邮箱已被注册" return render(request, 'login/register.html', locals()) new_user = models.User() new_user.username = username new_user.password = hash_code(password1) new_user.email = email new_user.sex = sex new_user.save() return redirect('/login/') register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
def register(request): if request.session.get('is_login', None): #登陆状态不允许注册 return redirect("/index/") if request.method == "POST": register_form = forms.RegisterForm(request.POST) print(request.POST) message = "请检查填写的内容!" if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] if password1 != password2: message = "两次输入的密码不相同!" return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = '用户名已存在,请重新输入用户名!' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = '该邮箱已被注册,请重新输入邮箱!' return render(request, 'login/register.html', locals()) #条件满足创建用户 new_user = models.User() new_user.name = username new_user.password = password1 new_user.email = email new_user.sex = sex new_user.save() return redirect('/login/') register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())
from app import db from login import models import utils if __name__ == '__main__': db.create_all() full_access_role = models.Role(name='full_access', ) readonly_role = models.Role(name='readonly', ) first_user = models.User( username='******', password=utils.hash_password('admin'), role=full_access_role, ) db.session.add(full_access_role) db.session.add(readonly_role) db.session.add(first_user) db.session.commit()
def register(request): if request.method == "POST": register_form = forms.RegisterForm(request.POST) message = "请检查填写内容~" # 获取数据 if register_form.is_valid(): username = register_form.cleaned_data['username'] password1 = register_form.cleaned_data['password1'] password2 = register_form.cleaned_data['password2'] email = register_form.cleaned_data['email'] sex = register_form.cleaned_data['sex'] pet_type = register_form.cleaned_data['pet_type'] intro = register_form.cleaned_data['intro'] if password1 != password2: message = "两次输入的密码不同" hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) elif len(password1) < 6 or len(password1) > 12: message = "密码长度在6-12个字符间" hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) elif len(username) > 15 or len(username) < 2: message = "用户名长度必须在2-15字符间" hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) #如果用户名存在 if same_name_user: message = "用户名已存在,请重新输入" hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) #如果邮箱存在 if same_email_user: message = "邮箱已被注册,请换一个邮箱注册" hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) try: #一切都ok时 new_user = models.User() new_user.name = username #使用加密密码 new_user.password = hash_code(password1) new_user.email = email new_user.sex = sex new_user.pet_type = pet_type new_user.intro = intro #先保存除头像外的数据 new_user.save() except Exception as e: print('保存新用户数据失败:', e) else: print('保存除头像外的新用户数据成功!') #查询新用户在数据库中id是多少 new_id = new_user.id #保存默认头像 传入新用户id save_default_photo(new_id, new_user) #认证注册邮箱 code = make_confirm_string(new_user, 'ConfirmString') try: send_email(email, code, 'register') except Exception as e: message = "邮件发送失败,请联网或换一个邮箱重新注册" print('注册拦截异常') #删除数据库中才保存的信息 models.User.objects.filter(name=username).delete() #返回注册界面 hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) message = "请前往注册邮箱,进行邮箱认证~" #跳转到等待邮件确认页面 return render(request, 'login/confirm.html', locals()) #如果验证不成功 hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'login/register.html', locals())
def register(request): register_form_mandatory = [ "username", "password1", "password2", "first_name", "last_name", "email", "phone", "univ", "major", ] if request.session.get('is_login', None): return redirect('/index/') if request.method == 'POST': register_form = forms.RegisterForm(request.POST) message = "Please check your input" if register_form.is_valid(): username = register_form.cleaned_data.get('username') first_name = register_form.cleaned_data.get('last_name') last_name = register_form.cleaned_data.get('first_name') password1 = register_form.cleaned_data.get('password1') password2 = register_form.cleaned_data.get('password2') email = register_form.cleaned_data.get('email') phone = register_form.cleaned_data.get('phone') univ = register_form.cleaned_data.get('univ') major = register_form.cleaned_data.get('major') classchoice1 = register_form.cleaned_data.get('classchoice1') classchoice2 = register_form.cleaned_data.get('classchoice2') classchoice3 = register_form.cleaned_data.get('classchoice3') classchoice4 = register_form.cleaned_data.get('classchoice4') year_in_school = register_form.cleaned_data.get('year_in_school') gender = register_form.cleaned_data.get('gender') if password1 != password2: message = 'Passwords do not match!' return render(request, 'login/register.html', locals()) else: same_name_user = models.User.objects.filter(name=username) if same_name_user: message = 'Username already exists!' return render(request, 'login/register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: message = 'Email account already in use!' return render(request, 'login/register.html', locals()) new_user = models.User() new_user.name = username new_user.first_name = first_name new_user.last_name = last_name new_user.password = hash_code(password1) new_user.email = email new_user.phone = phone new_user.univ = univ new_user.major = major new_user.year_in_school = year_in_school new_user.classchoice1 = classchoice1 new_user.classchoice2 = classchoice2 new_user.classchoice3 = classchoice3 new_user.classchoice4 = classchoice4 new_user.gender = gender new_user.save() return redirect('/login/') else: print("not valid") return render(request, 'login/register.html', locals()) register_form = forms.RegisterForm() return render(request, 'login/register.html', locals())