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 fnRegister() {
        var oUname = document.getElementById("uname");
             var oError = document.getElementById("error-box");
             var oUpass = document.getElementById("upass");
             var oUpass1 = document.getElementById("upass1");
    
             oError.innerHTML = "<br>";
    
             if (oUname.value.length<6||oUname.value.length>20){
                  oError.innerHTML="用户名要6-12位";
                  return false;
                    }
                    else if(oUname.value.charCodeAt(0)>=48&&(oUname.value.charCodeAt(0)<=57)){
                 oError.innerHTML = "首位不能为数字";
               return false;
             }else for(var i=0;i<oUname.value.length;i++){
                    if((oUname.value.charCodeAt(i)<48||oUname.value.charCodeAt(i)>57)&&(oUname.value.charCodeAt(i)<97||oUname.value.charCodeAt(i)>122)){
                        oError.innerHTML = "用户名必须为字母或数字";
                      return false;
                    }
             }
    
    
              if (oUpass.value.length<6||oUpass.value.length>20){
                        oError.innerHTML="密码至少6-20位";
                       return false;
    
                }
                if (oUpass1.value!=oUpass.value){
                          oError.innerHTML="密码不一致,请重新输入";
                         return false;
                }
                return true;
            }

    html:

    {% extends 'base.html' %}
    {% block title %}
        Register
    {% endblock  %}
    {% block head %}
    
        <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='css/10.31.css') }}">
        <script src="{{ url_for('static',filename='js/register.js') }}"></script>
    
    {% endblock  %}
    
    {% block main %}
    <div class="box">
        <div id="title">RegisterText</div>
        <h3>注册</h3>
        <form action="{{ url_for('register') }}" method="post">
        <div class="input-box">
            账号:<input id="uname" type="text"placeholder="请输入用户名" name="username" >
        </div>
        <div class="input-box">
            密码:<input id="upass" type="password"   placeholder="请输入密码"name="password">
        </div>
        <div class="input-box">
            验证:<input id="upass1" type="password" placeholder="请确认密码" name="password1">
        </div>
        <div id="error-box"><br></div>
        <div class="input-box">
            <button onclick="fnRegister()">注册/Register</button>
            <a href="{{ url_for('login') }}">已注册/Login</a>
        </div>
        </form>
    </div>
    
    {% endblock  %}

    主页:

    from flask import Flask
    from flask import render_template,redirect,url_for,request
    import config
    
    from flask_sqlalchemy import SQLAlchemy
    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)
    
    # 增加数据
    # user = User(username='vae', password='5201314')
    # db.session.add(user)
    # db.session.commit()
    #
    # # 查询数据
    # user = User.query.filter(User.username == 'vae').first()
    # print(user.username,user.password)
    #
    # #修改数据
    # user.password = '250250'
    # db.session.commit()
    
    # db.create_all()
    
    @app.route('/')
    def index():
        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:
            username = request.form.get('username')
            password = request.form.get('password')
            user = User.query.filter(User.username == username).first()
            if user:
                return 'username existed'
            else:
                user = User(username=username,password=password)
                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)
  • 相关阅读:
    一个iOS程序员眼中的跨域问题
    web 大规模并发访问的解决方案
    修改Capfile,在正式环境不再使用migration修改数据库
    关于 CAS 不能登录的问题
    老项目占地比较大的原因是release文件夹里有.git 目录
    capistrano3.4.0部署不能自动登录
    capistrano/blob/v3.4.0部署
    私有方法的查找方式
    开启关闭功能没有生效的原因
    找不到Settings
  • 原文地址:https://www.cnblogs.com/liminghui3/p/7853108.html
Copyright © 2011-2022 走看看