Exemple #1
0
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')
Exemple #2
0
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'))