def register(): form = RegisterForm() if form.validate_on_submit(): return redirect('/success') return render_template('user/register.html', form=form)
def register(): if request.method == "GET": # data = jsonify("please register") # print(type(data)) form = RegisterForm() return render_template('user/register.html', form=form) elif request.method == "POST": form = RegisterForm(formdata=request.form) # 判断是否验证成功 if form.validate(): isexist = User.query.filter_by(username=form.username.data).first() if isexist: flash(message="用户已存在") return redirect(url_for('user.register')) else: user = User(username=form.username.data, password=generate_password_hash( form.password.data)) # 将验证通过的用户保存至数据库 db.session.add(user) db.session.commit() flash("注册成功,赶紧登录吧") return redirect(url_for('user.login')) else: # 消息闪现,是一个列表 flash("注册失败") return render_template('user/register.html', form=form)
def post(self, request): register_form = RegisterForm(request.POST) message = "[ERROR]请检查填写的内容!" 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'] if password1 != password2: # 判断两次密码是否相同 message = "两次输入的密码不同!" return render(request, 'register.html', locals()) else: same_name_user = models.User.objects.filter(username=username) if same_name_user: # 用户名唯一 message = '用户已经存在,请重新选择用户名!' return render(request, 'register.html', locals()) same_email_user = models.User.objects.filter(email=email) if same_email_user: # 邮箱地址唯一 message = '该邮箱地址已被注册,请使用别的邮箱!' return render(request, 'register.html', locals()) # 当一切都OK的情况下,创建新用户 new_user = models.User.objects.create() new_user.username = username new_user.password = hash_code(password1) new_user.email = email new_user.save() return redirect('/login/') # 自动跳转到登录页面 else: return render(request, 'register.html', locals())
def login(): form = LoginForm() regform = RegisterForm() error = None if form.validate_on_submit() or regform.validate_on_submit(): if request.form['btn'] == 'Login': user = User.query.filter_by(username=form.username.data).first() if bcrypt.hashpw(form.password.data.encode('utf8'), user.password.encode('utf8')) == user.password.encode('utf8'): #decrypt password session['username'] = form.username.data return redirect(url_for('index')) else: error = "Incorrect username and password" else: # Check if username exists usernames = [u.username for u in User.query.all()] if regform.username.data in usernames: error = "username already exists!" else: # Add user to DB # 574 22nd Ave San Francisco, CA 94121 address = str(regform.house_number) + " " + regform.street + " " + regform.city + ", " + regform.state + " " + str(regform.zip_code) print (address) passwordEncrypt = bcrypt.hashpw(regform.password.data.encode('utf8'), bcrypt.gensalt()) #encrypt password regUser = User( regform.fullname.data, regform.email.data, regform.username.data, passwordEncrypt, address) db.session.add(regUser) db.session.commit() #simulate that the record is written # db.session.flush() # error = "Registration failed!" return render_template('user/login.html', form=form, regform=regform, error=error)
def register(request): if request.method == 'GET': return render(request, 'register.html') if request.method == 'POST': # 获取数据 # username = request.POST.get('username') # password1 = request.POST.get('pwd1') # password2 = request.POST.get('pwd2') # if not (username and password2 and password1): # pass # if not(len(username) > 10 and len(username < 20)): # pass # if password1 != password2: # pass # 使用表单做验证,验证传递的参数是否满足条件 form = RegisterForm(request.POST) # is_valid(): 判断表单校验参数是否通过,如果通过则返回true,否则返回false if form.is_valid(): # 表示表单校验通过 # 1. 账号一定不存在 # 2. 密码和确认密码相等 username = form.cleaned_data.get('username') password = form.cleaned_data.get('pwd1') # make_password() User.objects.create_user(username=username, password=password) # return HttpResponse('注册账号成功') return HttpResponseRedirect(reverse('user:login')) # 表示表单校验失败 errors = form.errors return render(request, 'register.html', {'errors': errors})
def register(): form = RegisterForm() error = None if form.validate_on_submit(): salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(form.password.data, salt) user = User(fullname=form.fullname.data, email=form.email.data, username=form.username.data, password=hashed_password, is_author=True, nickname=None, social_id=None) db.session.add(user) db.session.flush() if user.id: flash("User Created") db.session.commit() else: db.session.rollback() error = "Error registering User" return redirect('index') return render_template('user/register.html', form=form, error=error)
def login(): form = LoginForm() regform = RegisterForm() error = None if form.validate_on_submit() or regform.validate_on_submit(): if request.form['btn'] == 'Login': user = User.query.filter_by(username=form.username.data).first() if len(user.password) < 20: session['username'] = form.username.data return redirect(url_for('index')) elif bcrypt.hashpw( form.password.data.encode('utf8'), user.password.encode('utf8')) == user.password.encode( 'utf8'): #decrypt password session['username'] = form.username.data return redirect(url_for('index')) else: error = "Incorrect username and password" else: # Check if username exists usernames = [u.username for u in User.query.all()] if regform.username.data in usernames: error = "username already exists!" else: # Add user to DB address = "" address = str( regform.house_number.data ) + " " + regform.street.data + ", " + regform.city.data + ", " + regform.state.data + " " + str( regform.zip_code.data) try: geolocator = GoogleV3() user_location = geolocator.geocode(address) print(user_location.latitude, user_location.longitude) print("Valid Address") except: error = "Invalid Address or does not exist, please enter a valid address and Register again" return render_template('user/login.html', form=form, regform=regform, error=error) passwordEncrypt = bcrypt.hashpw( regform.password.data.encode('utf8'), bcrypt.gensalt()) #encrypt password regUser = User(regform.fullname.data, regform.email.data, regform.username.data, passwordEncrypt, address) db.session.add(regUser) db.session.commit() #simulate that the record is written # db.session.flush() # error = "Registration failed!" return render_template('user/login.html', form=form, regform=regform, error=error)
def register(request): if request.method == 'POST': form = RegisterForm(request.POST, request.FILES) if form.is_valid(): user = form.save(commit=False) user.password = make_password(user.password) user.save() return redirect('/user/login/') else: return render(request, 'register.html', {'error': form.errors}) else: return render(request, 'register.html')
def test_register_username_exist(self): """ Check if username is already exists. Do not valid the form. """ form = RegisterForm(data={ "username": "******", "first_name": "", "last_name": "", "email": "*****@*****.**", "password": "******", "repassword": "******" }) self.assertFalse(form.is_valid())
def test_register_email_exist(self): """ Check if register is valid. Do not valid the form. """ form = RegisterForm(data={ "username": "******", "first_name": "", "last_name": "", "email": "*****@*****.**", "password": "******", "repassword": "******" }) self.assertFalse(form.is_valid())
def register(request): if request.method == 'GET': return render(request, 'register.html') if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): username = form.cleaned_data.get('username') password = make_password(form.cleaned_data.get('password')) User.objects.create(username=username, password=password) return HttpResponseRedirect(reverse('user:login')) errors = form.errors return render(request, 'register.html', {'errors': errors})
def test_register_password_not_match(self): """ Check if password not match with repassword. """ form = RegisterForm(data={ "username": "******", "first_name": "", "last_name": "", "email": "*****@*****.**", "password": "******", "repassword": "******" }) self.assertFalse(form.is_valid())
def register(): form = RegisterForm() if form.validate_on_submit(): salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(form.password.data, salt) user = User( form.fullname.data, form.email.data, form.username.data, hashed_password, False ) db.session.add(user) db.session.commit() return redirect('/success') return render_template('user/register.html', form=form)
def register_form(request): if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): form.save() username = form.cleaned_data['username'] password = form.cleaned_data['password1'] user = authenticate(username=username, password=password) login(request, user) current_user = request.user data = UserProfile() data.user_id = current_user.id data.image = "images/users/user.png" data.save() messages.success(request, "Your account has been created") return HttpResponseRedirect('/') else: messages.warning(request, form.errors) return HttpResponseRedirect('/register') form = RegisterForm() context = { 'form': form, } return render(request, 'register_form.html', context)
def register(): form = RegisterForm() if form.validate_on_submit(): salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(form.password.data, salt) fullname = string.capwords(form.fullname.data) user = User( fullname, form.email.data, form.username.data.lower(), hashed_password, False ) db.session.add(user) db.session.commit() flash("User Registered!") return redirect(url_for('register')) return render_template('user/register.html', form=form)
def register_page(): form = RegisterForm() if form.validate_on_submit(): salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(form.password.data, salt) user = User(form.fullname.data, form.email.data, form.username.data, hashed_password, False) try: db.session.add(user) db.session.flush() db.session.commit() session["username"] = form.username.data return redirect(url_for("login_page")) except Exception as e: db.session.rollback() print(e) error = "Choose a unique username and email" return render_template("user/register.html", form=form, error=error) return redirect(url_for("index_page")) return render_template('user/register.html', form=form)
def initial(): user = User.query.first() form = RegisterForm() if user: abort(403) else: if form.validate_on_submit(): salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(form.password.data, salt) fullname = string.capwords(form.fullname.data) user = User( fullname, form.email.data, form.username.data.lower(), hashed_password, True ) db.session.add(user) db.session.commit() flash("User Registered, app initialised.") return redirect(url_for('login')) return render_template('user/initial.html', form=form)
def final_register(request): if request.method == 'POST': register_form = RegisterForm(request.POST) check_term = request.POST.get('term_check') # another method to get check box, or can use form.cleaned_data if check_term == 'on': stored_form = register_form if register_form.is_valid(): # dont wanna fill form again # username = register_form.cleaned_data['username'] register_form.clean() username = request.POST.get('username') password1 = request.POST.get('password1') password2 = request.POST.get('password2') email = request.POST.get('email') # check passwords are the same if password1 != password2: message = 'Not the same password' return render(request, 'user/register.html', {'message': message, 'register_form': stored_form}) else: same_name_user = User.objects.filter(username=username) # check user name if same_name_user: message = 'The user name was already existed' return render(request, 'user/register.html', {'message': message, 'register_form': stored_form}) same_email_user = User.objects.filter(email=email) if same_email_user: message = 'The email was registered, please use another one' return render(request, 'user/register.html', {'message': message, 'register_form': stored_form}) interest = Interest() user = User() additional_info = AdditionalInfo() additional_info.save() interest.save() user.additionalInfo = additional_info user.interest = interest user.email = email user.password = password1 user.username = username user.is_active = True user.save() # TODO: label as todo to ensure later check # the user was logged without verification of their email, may need change here request.session['is_login'] = True request.session['user_name'] = user.username return redirect('/user/index/') register_form = RegisterForm() message = 'There are something with the submitted form' return render(request, "oauth/oauth_register.html", locals())
def register(request): if request.method == 'GET': return render(request, 'web/register.html') if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('pwd1') email = form.cleaned_data.get('email') # make_password() 加密密码 User.objects.create(username=username, password=make_password(password), email=email) # 返回登录 return HttpResponseRedirect(reverse('user:login')) return render(request, 'web/register.html', { 'form': form, 'data': form.data })
def github_redirect(request, profile): message = 'please register your account here!' new_user_name = profile['login'] same_user_name = User.objects.filter(username=new_user_name) if same_user_name: message += 'The user name was already existed, please choose a new one' new_user_name = '' email = profile['email'] if email is None: email = '' register_form = RegisterForm(initial={ 'username': new_user_name, 'email': email, }) return render(request, "oauth/oauth_register.html", {'message': message, 'register_form': register_form})
def instagram_callback(request): code = request.get_full_path().split("code=")[1].split("#_")[0] url = "https://api.instagram.com/oauth/access_token/" data = {"client_id": "2861822790566791", "client_secret": "9f6c11ccc2a1076130eaea5104fc7303", "grant_type": "authorization_code", "redirect_uri": "https://localhost:8000/oauth/instagram_callback", "code": code } r = requests.post(url, data=data) # return redirect(url) json_data = json.loads(r.text) access_token = json_data.get("access_token") user_id = str(json_data.get("user_id")) response = requests.get("https://graph.instagram.com/"+user_id+"?fields=id,username&access_token="+access_token) username = json.loads(response.text).get("username") message = "please create a local account!" register_form = RegisterForm(initial={ 'username': username, }) return render(request, "user/register.html", {'message': message, 'register_form': register_form, 'instagram_username':username})
def logout(): #Delete the sessions for username when the user logout session.pop('username', None) regform = RegisterForm() form = LoginForm() return render_template('user/login.html', form=form, regform=regform)
def get(self, request): register_form = RegisterForm() return render(request, 'register.html', locals())
def success(): form = RegisterForm() flash(form.fullname.data) return render_template('user/index.html')
def get(self, request): """显示注册页面""" register_form = RegisterForm() return render(request, 'register.html', context={'register_form': register_form})
def post(self, request): """用户注册校验""" register_form = RegisterForm(request.POST) if register_form.is_valid(): # 获取前端数据 username = register_form.cleaned_data['user_name'] pwd = register_form.cleaned_data['pwd'] cpwd = register_form.cleaned_data['cpwd'] email = register_form.cleaned_data['email'] allow = request.POST.get('allow') # 校验参数是否完整 if not all([username, pwd, cpwd, email]): return render(request, 'register.html', context={ 'errmsg': '请填写全部', 'register_form': register_form }) # 校验用户是否存在 try: use = User.objects.get(username=username) except Exception as e: use = None if use: return render(request, 'register.html', context={ 'errmsg': '用户名已存在', 'register_form': register_form }) # 校验密码是否正确 if pwd != cpwd: return render(request, 'register.html', context={ 'errmsg': '两次密码不一致', 'register_form': register_form }) # 校验协议是否勾选 if allow != 'on': return render(request, 'register.html', context={ 'errmsg': '请勾选协议', 'register_form': register_form }) # 检查邮箱不能重复 try: user = User.objects.get(email=email) except Exception as e: user = None if user: return render(request, 'register.html', context={ 'errmsg': '邮箱已经被注册', 'register_form': register_form }) # 创建用户 user = User.objects.create_user(username=username, password=pwd, email=email) # 上边的方法会自动将 is_active 改为1 也就是邮箱激活状态, 所以下边需要修改一下 user.is_active = 0 user.save() # 加密用户信息生成激活token serializer = Serializer(SECRET_KEY, 3600) info = {'confirm': user.id} token = serializer.dumps(info) # 获取到的数据是bytes类型的,需要解码 token = token.decode() # 发送邮件 send_active_email.delay(email, token, user.username) return redirect(reverse('user:login')) else: return render(request, 'register.html', context={'register_form': register_form})