完成注册功能

  1. js文件: onclick函数return True时才提交表单,return False时不提交表单。
    function myLogin() {
        var oUname = document.getElementById("uname");
        var oUpass = document.getElementById("upass");
        var oAgain = document.getElementById("again");
        var oError = document.getElementById("error_box");
         var isError = true;
        oError.innerHTML = "<br>";
        // 验证用户名
        if (user.value.length < 6 || user.value.length > 20) {
            oError.innerHTML = "用户名6-20位";
             isError = false;
             return isError;
        } else if ((user.value.charCodeAt(0) >= 48) && (user.value.charCodeAt(0) <= 57)) {
            oError.innerHTML = "用户名首字母不能是数字";
            isError = false;
            return isError;
        } else for (var i = 0; i < user.value.length; i++) {
            if ((user.value.charCodeAt(i) < 48) || (user.value.charCodeAt(i) > 57) && (user.value.charCodeAt(i) < 97) || (user.value.charCodeAt(i) > 122)) {
                oError.innerHTML = "用户名只能是数字或字母";
                  isError = false;
                  return isError;
            }
        }
    
        // 验证密码
        if (upass.value.length < 6 || pass.value.length > 20) {
            oError.innerHTML = "密码6-20位";
            isError = false;
            return isError;
        }
    
        // 验证再次输入的密码
        if (upass.value != zhuce.value) {
            oError.innerHTML = "密码不一致";
           isError = false;
           return isError;
        }
        return ture;
    
        // 验证弹框
        window.alert("注册成功!")
    }

    html文件:

    1. <form>中设置 action和method="post"
    2. <input> 中设置 name
      {% extends'base.html' %}
      {% block title %}
          register
      {% endblock %}
          {% block head %}
          <link rel="stylesheet" type="text/css" href="../static/css/1.css">
              <script src="../static/js/zhuce.js"></script>
              <script src="{{ url_for('static',filename='js/zhuce.js') }}"></script>
      {% endblock %}
      {% block main %}
      <body>
      <div class="box">
      <h1>注册</h1>
          <form action="{{ url_for('register') }}" method="post">
                <div class="input_box">
                    Username:<input id="uname"type="text" name="username"placeholder="请输入用户名">
                </div>
                    <br>
                    <div class="input_box">
                    Password:<input id="upass"type="password" name="password"placeholder="请输入登录密码">
                 </div>
                    <br>
                <div class="input_box">
                     密码确认:<input id="again" type="password" placeholder="请再次输入密码">
               </div><br>
                   <div id="error_box"><br></div>
                   <div class="input_box">
                    <button onclick="myLogin()">点击注册</button>
                    <button type="button" onclick=window.alert("是否取消注册!")>取消</button>
      
      </div>
          </form>
      </div>
      </body> {% endblock %}
      1. 主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重定向到登录页

      from flask import Flask, render_template,request,redirect,url_for
      from flask_sqlalchemy import SQLAlchemy
      import config
      
      app = Flask(__name__)
      app.config.from_object(config)
      db = SQLAlchemy(app)
      
      
      class User(db.Model):
          __tablename__ = 'user'
          id = db.Column(db.Integer,primary_key=True,autoincrement=True)
          username = db.Column(db.String(20),nullable=False)
          password = db.Column(db.String(20),nullable=False)
      
      #db.create_all()
      
      #user=User(username='yyyy1',password='111111')
      #db.session.add(user)
      #db.session.commit()
      
      #user = User.query.filter(User.username == 'yyyy1').first()
      
      
      #user=User.query.filter(User.username=='yyyy1').first()
      #user.password='234567'
      #print(user.username,user.password)
      #db.session.commit()
      
      #user=User.query.filter(User.username == 'yyyy1').first()
      #db.session.delete(user)
      #db.session.commit()
      #
      @app.route('/')
      def base():
          return render_template('base.html')
      
      
      @app.route('/login/')
      def login():
          return render_template('login.html')
      
      
      @app.route('/register/', methods=['GET','POST'])
      def register():
          if request.method=='GET':
              return render_template('register.html')
          else:
              usern=request.form.get('username')
              passw= request.form.get('password')
              user=User.query.filter(User.username==usern).first()
              if user:
                  return 'username existed'
              else:
                  user=User(username=usern,password=passw)
                  db.session.add(user)
                  db.session.commit()
                  return redirect(url_for('login'))
      
      
      @app.route('/question/')
      def question():
          return render_template('question.html')
      
      if __name__ == '__main__':
          app.run(debug=True)

       

posted @ 2017-11-21 20:20  103许雅婷  阅读(137)  评论(0编辑  收藏  举报