完成注册功能

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

 1         function mulogin() {
 2             var name=document.getElementById("username");
 3             var password=document.getElementById("password");
 4             var password1=document.getElementById("password");
 5             var error=document.getElementById("error_box");
 6             var isError=true;
 7 
 8 
 9             error.innerHTML="<br>";
10             if(name.value.length<6 || name.value.length>20){
11                 error.innerHTML="用户名为6-20位";
12                 isError=false;
13                 return isError;
14             }else if(name.value.charCodeAt(0)>=48 && (name.value.charCodeAt(0)<=57)){
15                 error.innerHTML="首字母必须为字母";
16                 isError=false;
17                 return isError;
18             }else for( var i=0;i<name.value.length;i++){
19                 if((name.value.charCodeAt(i)<48 || name.value.charCodeAt(i)>57) && (name.value.charCodeAt(i)<97|| name.value.charCodeAt(i)>122)){
20                     error.innerHTML="用户名只能是字母和数字";
21                     isError=false;
22                 return isError;
23                 }
24             }
25             if(password.value.length<6 || password.value.length>20 ){
26                 error.innerHTML="密码为6-20位";
27                 isError=false;
28                 return isError;
29             }
30              if(password!=password1){
31          document.getElementById("error_box").innerHTML="两次密码不一致,请重新输入";
32          isError=false;
33          return isError;
34 
35      }
36         }

html文件:

<form>中设置 action和method="post"

<input> 中设置 name

 1 {% extends 'index.html' %}
 2 {% block title %}注册{% endblock %}
 3 
 4 {% block head %}
 5 <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='css/regist.css') }}">
 6 <script src="{{ url_for('static',filename='js/regist.js') }}"></script>>
 7 {% endblock %}
 8 
 9 {% block main %}
10 <div class="box">
11     <h2>注册</h2>
12     <br>
13     <form action="{{url_for('regiest')}}" method="post">
14         <div class="input_box">
15             <input id="username" type="text" placeholder="请输入用户名" name="username">
16             <input id="nickname" type="text" placeholder="昵称" name="nickname">
17         </div>
18         <div class="input_box">
19             <input id="password" type="text" placeholder="请输入密码" name="password">
20             <input id="password1" type="text" placeholder="请输入密码">
21         </div>
22         <br><br>
23         <div id="error_box"><br></div>
24         <div>
25             <button onclick="muregist()">注册</button>
26         </div>
27     </form>
28 </div>
29 {% endblock %}

主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('/regist/', methods=['GET', 'POST'])
def regist():
    if request.method == 'GET':
        return render_template('regist.html')
    else:
        username = request.form.get('username')  # 获取form中的数据
        passwrod = request.form.get('passwrod')
        nickname = request.form.get('nickname')
        user = User.query.filter(User.username == username).first()
        if user:
            return '用户已存在'  # 判断用户是否存在
        else:
            user = User(username=username, passwrod=passwrod, nickname=nickname)  # 新增到数据库中
            db.session.add(user)  # 数据库操作
            db.session.commit()
            return redirect(url_for('login'))  # 重新定向到登录页

 

 

 

posted on 2017-11-17 09:50  张木清  阅读(167)  评论(0编辑  收藏  举报

导航