完成注册功能

1.js文件: onclick函数return True时才提交表单,return False时不提交表单。 

function myRegist() {
            var oUname=document.getElementById("uname");
            var oPass=document.getElementById("upass");
            var oPas=document.getElementById("upas");
            var oError=document.getElementById("error_box");
            var isError=true;
            oError.innerHTML="<br>";

            if(oUname.value.length<6||oUname.value.length>20){
                oError.innerHTML='请输入6-20位的用户名';
                isError=false;
             return isError;

            }
            if(oUname.value.charCodeAt(0)>=48&&oUname.value.charCodeAt(0)<=57){
                oError.innerHTML='首字母不能为数字';

             return isError;
            }else{
                for(var i=0;i<oUname.value.length;i++){
                    if((oUname.value.charCodeAt(i)>122||oUname.value.charCodeAt(i)<97)&&(oUname.value.charCodeAt(i)>57&&oUname.value.charCodeAt(i)<48)){
                        oError.innerHTML='只能输入字母或数字';
                        isNotError=false;
                        return isError;
                    }
                }
            }
            if(oPass.value.length<6||oPass.value.length>20){
                oError.innerHTML='请输入6-20位的密码';
             return false;

            }else if(oPass.value != oPas.value){
                oError.innerHTML='密码输入不正确';
                return false;
            }
           return isError

        }

 

 

2.html文件:

  1. <form>中设置 action和method="post"
  2. <input> 中设置 name
<body>
{% block main %}
    <div class="box">
        <h2>注册</h2>
        <form action="{{ url_for('sign_up') }}" method="post">

        <div class="input_box">
            <input id="uname" class="sign" type="text" placeholder="请输入用户名" name="username">
        </div>
         <div class="input_box">
            <input id="unick" class="sign" type="text" placeholder="请输入昵称" name="nickname">
        </div>
        <div class="input_box">
            <input id="upass" class="sign" type="password" placeholder="请输入密码" name="password">
        </div>
        <div class="input_box">
            <input id="upas" class="sign" type="password" placeholder="请再输入一次密码" >
        </div>
        <div id="error_box"><br>
        </div>
        <div class="input_box">
            <input type="submit" name="commit" value="注册" class="sign-in-button" data-disable-with="注册" onclick="myRegist()">

            </div>
</form>
        </div>


{% endblock %}
</body>

 

3.主py文件中:

  1. from flask import  request, redirect, url_for
  2. @app.route('/regist/', methods=['GET', 'POST’])

def regist():

   if request.method == 'GET':

        return render_template('regist.html')

   else:

        username = request.form.get(‘username’)#获取form中的数据

        判断用户名是否存在:存在报错

  不存在,存到数据库中

       redirect重定向到登录页

 

@app.route('/sign_up/',methods=['GET','POST'])
def sign_up():
    if request.method=='GET':
        return render_template('sign_up.html')
    else:
        usern=request.form.get('username')
        nickn= request.form.get('nickname')
        passw = request.form.get('password')
        user=User.query.filter(User.username==usern).first()
        if user:
            return u'该用户名已存在'
        else:
            user1=User(username=usern,nickname=nickn,password=passw)
            db.session.add(user1)
            db.session.commit()
            return redirect(url_for('sign_in'))

 

运行结果如下:

 

posted @ 2017-11-21 14:30  086黄向薇  阅读(215)  评论(0)    收藏  举报