mmmaxwell 2017-02-22 17:09 采纳率: 0%
浏览 1208

flask web开发中用户注册遇到无法注册的问题

事情是这要的,小弟我发现注册的时候,首先form.validate_on_submit()的值一直为flase,另外在提交表单的时候,提交方式居然是get,而不是post,不知道问题出在哪里,求大神指点迷津,源程序都在下面了
这是forms.py

 class SignUpForm(FlaskForm):
        user_name = StringField(u'用户名',validators=[Required(u'请填写此字段'),Length(max=15)])
        user_email = StringField(u'邮箱',validators=[Required(u'请填写此字段'),Email()])
        submit = SubmitField(u'注册')

这是views.py

 @app.route('/sign-up',methods=['GET','POST'])
def sign_up():
        form = SignUpForm()
        if request.method == 'POST':
                if form.validate_on_submit():
                        user = User()
                        user_name = request.form.get('user_name')
                        user_email = request.form.get('user_email')

                        register_check = User.query.filter(db.or_(
                        User.nickname==user_name,User.email==user_email)).first()
                        if register_check:
                                flash("error:The user's name or email alraedy exists!")
                                return redirect('/sign-up')

                        if len(user_name) and len(user_email):
                                user.nickname = user_name
                                user.email = user_email
                                user.role = ROLE_USER
                                try:
                                        db.session.add(user)
                                        db.session.commit()
                                except:
                                        flash("The Database error!")
                                        return redirect('/sign-up')
                                flash("Sign up successful!")
                                return redirect('/index')
        return render_template(
                        'sign_up.html',
                        title = 'Sign Up',
                        form = form)

这是sign-up.html


  <form action="/sign-up",method="post",name="sign_up">
    {{form.hidden_tag()}}
    <legend>Please sign up:</legend>
    <p>
    Nick name:<br>
    {{form.user_name}}
    {%for error in form.errors.user_name%}
    <span style="color:red;">[-]{{error}}</span>
    {%endfor%}<br>
    </p>
    <p>
    E-mail:<br>
    {{form.user_email}}
    {%for error in form.errors.user_email%}
    <span style="color:red;">[-]{{error}}</span>
    {%endfor%}<br>
    </p>
    <p>{{form.submit}}</p>
  </form>

  • 写回答

3条回答 默认 最新

  • zqbnqsdsmd 2017-02-22 19:17
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!