zoukankan      html  css  js  c++  java
  • 完成注册功能

    1. js文件: onclick函数return True时才提交表单,return False时不提交表单。
    2. html文件:
      1. <form>中设置 action和method="post"
      2. <input> 中设置 name
    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重定向到登录页

    js:

    function Login(){
                var un=document.getElementById("id");
                var us=document.getElementById("password");
                var er=document.getElementById("error_box");
                er.innerHTML = "<br>";
                if(un.value.length<6||un.value.length>20){
                er.innerHTML="用户名必须在6-20个字符之间";
                return;
                }else if((un.value.charCodeAt(0))>=48 && un.value.charCodeAt(0)<=57){
                    er.innerHTML = "首字母不能为数字"
                    return;
                }else for(var i=0;i<un.value.length;i++){
                    if((un.value.charCodeAt(i)<48)||(un.value.charCodeAt(i)>57)&&(un.value.charCodeAt(i)<97)&&(un.value.charCodeAt(i)>122)){
                        er.innerHTML="用户名只能为数字和字母"
                        return;
                    }
                }
                if(us.value.length<6||us.value.length>20){
                er.innerHTML="密码必须在6-20个字符之间";
                return;
                }
                window.alert("登陆成功!")
            }
        function Zhuce() {
            var un=document.getElementById("zcid");
            var us=document.getElementById("zcpassword");
            var rpa=document.getElementById("repassword");
            var er=document.getElementById("error_box1");
                er.innerHTML = "<br>";
                if(un.value.length<6||un.value.length>20){
                er.innerHTML="用户名必须在6-20个字符之间";
                return;
                }else if((un.value.charCodeAt(0))>=48 && un.value.charCodeAt(0)<=57){
                    er.innerHTML = "首字母不能为数字"
                    return;
                }else for(var i=0;i<un.value.length;i++){
                    if((un.value.charCodeAt(i)<48)||(un.value.charCodeAt(i)>57)&&(un.value.charCodeAt(i)<97)&&(un.value.charCodeAt(i)>122)){
                        er.innerHTML="用户名只能为数字和字母"
                        return;
                    }
                }
                if(us.value.length<6||us.value.length>20){
                     er.innerHTML="密码必须在6-20个字符之间";
                     return;
                }else for(var i=0;i<us.value.length;i++){
                    if(us.value.charCodeAt(i)!=rpa.value.charCodeAt(i)){
                        er.innerHTML="密码不一致"
                    }
                }
        }

    HTML:

    <div class="center-block" id="zhucebox">
        <div class="panel panel-primary" id="zhucebox1_1">
            <div class="panel-heading">
                <h2 class="panel-title">注册</h2>
            </div>
            <br>
            <form class="bs-example bs-example-form" role="form" action="{{ url_for('register') }}" method="post">
                <div class="input-group">
                    <span class="input-group-addon"></span>
                    <input type="text" class="form-control" id="zcid" placeholder="请输入用户名" name="zcid">
                </div>
                <br>
                <div class="input-group">
                    <span class="input-group-addon"></span>
                    <input type="password" class="form-control" id="zcpassword" placeholder="请设置密码" name="zcpassword">
                </div>
                <br>
                <div class="input-group">
                    <span class="input-group-addon"></span>
                    <input type="password" class="form-control" id="repassword" placeholder="请再次输入密码">
                </div>
                <div id="error_box1">
                    <br>
                </div>
                <br>
                <label><input type="submit" class="btn btn-default" value="注册" onclick="Zhuce()"></input></label>
            </form>
        </div>
    </div>

    主py文件:

    from flask import Flask, render_template, request, url_for, sessions, redirect
    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='mis777789',password='g6666')
    # db.session.add(user)
    # db.session.commit()
    
    # 数据的修改方法
    # user = User.query.filter(User.username=='mis777789').first
    # user.password='0.0.0.0'
    # db.session.commit()
    
    # 数据的删除方法
    # user = User.query.filter(User.username=='mis777789').first()
    # db.session.delete(user)
    # db.session.commit()
    
    @app.route('/')
    def index():
        return render_template("index.html")
    
    @app.route('/login')
    def login():
        return render_template("login.html")
    
    @app.route('/regis',methods=['GET','POST'])
    def register():
        if request.method=='GET':
            print('1')
            return render_template('Zhuce.html')
        else:
            print('2')
            username=request.form.get('zcid')#与html页面名字相同
            password=request.form.get('zcpassword')
            user=User.query.filter(User.username==username).first()
            if user:
                return 'exit'
            else:
                user=User(username=username,password=password)
                db.session.add(user)
                db.session.commit()
                return redirect(url_for('login'))
    
    
    
    @app.route('/fankui')
    def fankui():
        return render_template("page_fankui.html")
    
    if __name__ == '__main__':
        app.run(debug=True)
  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/Naiky/p/7857660.html
Copyright © 2011-2022 走看看