码迷,mamicode.com
首页 > 其他好文 > 详细

完成注册功能

时间:2017-11-18 22:01:02      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:imp   code   form   mit   bug   debug   用户名   enter   inpu   

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

js代码:

function fnRegist() {
    var oUpass = document.getElementById("upass").value;
    var oUpass1 = document.getElementById("upass1").value;
    var oUname = document.getElementById("uname");
    var oError = document.getElementById("error_box");
    var isError = true;
     if (oUname.value.length > 20 || oUname.value.length < 6) {
        oError.innerHTML = "用户名请输入6-20位字符";
        isError = false;
        return isError;
    }else if((oUname.value.charCodeAt(0)>=48) && (oUname.value.charCodeAt(0)<=57)){
        oError.innerHTML = "首字符必须为字母";
         isError = false;
         return isError;
    }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 = "必须为字母跟数字组成";
                isError = false;
                return isError;
            }
        }
    }
      if (oUpass.length > 20 || oUpass.length < 6) {
        oError.innerHTML = "密码请输入6-20位字符"
        isError = false;
        return isError;
    }
    if (oUpass != oUpass1) {
        document.getElementById("error_box").innerHTML = "两次密码输入不一致";
        isError = false;
        return isError;
    }
    return isError;
}

 

  1. html文件:
    1. <form>中设置 action和method="post"
    2. <input> 中设置 name

html代码:

{% extends‘myweb.html‘ %}
{% block registtitle %}注册页面{% endblock %}
{% block registhead %}
    <link rel="stylesheet" type="text/css" href="../static/css/component.css"/>
    <script src="../static/js/regist.js"></script>
{% endblock %}
{% block registbody %}
    <div class="logo_box">
        <h3 style="text-align: center">欢迎你</h3>
        <form action="{{ url_for(‘regist‘) }}" method="post" >
            <div class="input_outer">
                <span class="u_user"></span>
                <input id="uname" class="text" style="color: wheat" type="text" placeholder="请输入账号" name="username">
            </div>
            <div class="input_outer">
                <span class="u_user"></span>
                <input id="unickname" class="text" style="color: wheat" type="text" placeholder="请输入昵称"
                       name="nickname">
            </div>
            <div class="input_outer">
                <span class="us_uer"></span>
                <input id="upass" class="text" style="color:wheat ; position:absolute; z-index:100;"
                       value="" type="password" placeholder="请输入密码" name="password">
            </div>
            <div class="input_outer">
                <span class="us_uer"></span>
                <input id="upass1" class="text" style="color:wheat ; position:absolute; z-index:100;"
                       value="" type="password" placeholder="请再次输入密码">
            </div>
            <div class="errorText" id="error_box" style="color: red"><br></div>
            <div>
                <button  class="lb1" style="color:black" type="submit" onclick="return fnRegist()">注册</button>
            </div>
        </form>
    </div>
{% 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重定向到登录页

 py代码:

from flask import Flask, render_template,url_for,redirect,request
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)
    nickname = db.Column(db.String(20))


@app.route(‘/‘)
def myweb():
    return render_template("myweb.html")


@app.route(‘/login/‘)
def login():
    return render_template("login.html")


@app.route(‘/regist/‘,methods=[‘GET‘,‘POST‘])
def regist():
    if request.method==‘GET‘:
        return render_template("regist.html")
    else:
        username = request.form.get(‘username‘)
        password = request.form.get(‘password‘)
        nickname = request.form.get(‘nickname‘)
        user = User.query.filter(User.username==username).first()
        if user:
            return ‘ 用户名已存在‘
        else:
            user = User(username=username, password=password,nickname=nickname)
            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)

 

完成注册功能

标签:imp   code   form   mit   bug   debug   用户名   enter   inpu   

原文地址:http://www.cnblogs.com/yishhaoo/p/7857962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!