• 完成注册功能


    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)
  • 相关阅读:
    python中filter、map、reduce的区别
    Python属性和内建属性
    3分钟学会Python 针对Excel操作
    python重要函数eval
    python中用修饰器进行异常日志记录
    python 生成器中的send、移动平均值、列表表达式相关
    python中如何将字符串连接在一起,多倍的字符串如何输出
    Python将一个已知的utc时间字符串转换为东八区时间
    Python有参函数的使用
    Linux--虚拟环境
  • 原文地址:https://www.cnblogs.com/Naiky/p/7857660.html
Copyright © 2020-2023  润新知