def register(): form = RegisterForm() if form.validate_on_submit(): user = db_session.query(User).filter_by( user=form.user.data.lower()).first() if user: flash('User exists.') else: user = User(form.user.data.lower(), form.key.data, form.email.data) db_session.add(user) # Set up the settings table when the first user is registered. if not Setting.query.filter_by(_id=1).first(): settings = Setting('off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', 'off', '', '', '', '', '', '', '', '', '', '', '', '') db_session.add(settings) # Commit all database changes once they have been completed db_session.commit() login_user(user) if current_user.is_authenticated: return redirect(url_for('home')) return render_template('register.html', form=form, title='Register')
def register(): """ 用户注册 :return: """ if request.method == 'GET': return render_template('home/register.html') elif request.method == 'POST': # 1. 获取提交数据 username = request.form.get('username') email = request.form.get('email') pwd1 = request.form.get('pwd1') pwd2 = request.form.get('pwd2') # 2.检查数据 if not all([username, email, pwd1, pwd2]): return render_template('home/register.html', errmsg='请填写完整信息') # ^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+ email_re = '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$' if not re.match(email_re, email): return render_template('home/register.html', errmsg='邮箱格式不正确') if pwd1 != pwd2: return render_template('home/register.html', errmsg='两次密码不一致') db_email = User.query.filter_by(email=email).first() if db_email: return render_template('home/register.html', errmsg='邮箱已存在') user = User.query.filter_by(username=username).first() if user: return render_template('home/register.html', errmsg='昵称已存在') # 3.业务处理 try: # 密码自己加密 这里不加密 user = User(username=username, email=email, password=pwd1) db.session.add(user) db.session.commit() except: db.session.rollback() traceback.print_exc() return redirect(url_for('home.login'))