完成注册功能

  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重定向到登录页

 

index.py

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


db.create_all()

@app.route('/')
def shouye():
    return render_template('text.html')


@app.route('/zhuce',methods=['GET','POST'])
def zhuce():
    if request.method == 'GET':
        return render_template('zhuce.html')
    else:
        username = request.form.get('username')
        password = request.form.get('password')
        nickname = request.form.get('nickname')
        user1 = User.query.filter(User.username == username).first()
    if user1:
        return 'username existed'
    else:
        user1 = User(username=username, password=password, nickname=nickname)
        db.session.add(user1)
        db.session.commit()
        return redirect(url_for('denglu'))



@app.route('/denglu',methods=['GET','POST'])
def denglu():
    if request.method == 'GET':
        return render_template('denglu.html')
    else:
        username = request.form.get('username')
        password = request.form.get('password')
        user2=User.query.filter(User.username == username).first()
    if user2:
        if user2.password == password:
           return redirect(url_for('shouye'))
        else:
            return 'password error'
    else:
        return 'username is not existed'




@app.route('/neirong')
def fankui():
    return render_template('fankui.html')


if __name__ == '__main__':
    app.run(debug='True')

zhuce.html

<!DOCTYPE html>
<html lang="en">
<head>
    {% extends "text.html" %}
    <meta charset="UTF-8">
    <title>注册</title>
    <link href="https://cdn.bootcss.com/bootstrap/4.0.0-beta/css/bootstrap.css" rel="stylesheet">
    <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
    {% block js %}
        <script src="{{ url_for('static',filename='js/Mylogin.js') }}"></script>{% endblock %}
</head>
<body background="../static/img/WeChat%20Image_20171027161942.png"
      style="background-repeat:no-repeat;background-size: 100% 100%; background-attachment: fixed;">
{% block zhuce %}
    <form id='a' action="{{ url_for("zhuce") }}" method="post">
        <div class="container-fluid">
            <div class="mt-5 pt-5">
                <div class="card border-primary mb-3 m-auto" style="max-width: 20rem;">
                    <div class="card-header text-center">wgd</div>
                    <div class="card-body text-primary">
                        <h4 class="card-title" align="center">注册</h4>
                        <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                            <div class="input-group-addon"><i class="fa fa-user"></i></div>
                            <input type="text" class="form-control" placeholder="Username" id="uname" required
                                   name="username">
                        </div>
                        <p id="errorbox1" class="m-0 p-0 text-danger"> &nbsp</p>
                        <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                            <div class="input-group-addon"><i class="fa fa-lock"></i></div>
                            <input type="text" class="form-control" placeholder="nickname" id="nickname" required
                                   name="nickname">
                        </div>
                        <br>
                        <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                            <div class="input-group-addon"><i class="fa fa-lock"></i></div>
                            <input type="password" class="form-control" placeholder="Password" id="upass" required
                                   name="password">
                        </div>
                        <p id="errorbox2" class="m-0 p-0 text-danger"> &nbsp</p>
                        <div class="input-group mb-2 mr-sm-2 mb-sm-0">
                            <div class="input-group-addon"><i class="fa fa-lock"></i></div>
                            <input type="password" class="form-control" placeholder="Password_check" id="upass_check"
                                   required onblur="check()"/>
                        </div>
                        <span id="warning">   </span>


                        <div class="row">
                            <div class="col-3">
                                <button class="btn btn-outline-primary" onclick= "MyLogin()">注册</button>
                            </div>

                            <div class="col-9 text-sm-right">
                                <a href="{{ url_for('denglu') }}">已有账户登录 </a>
                            </div>
                        </div>

                    </div>
                </div>
            </div>
        </div>
    </form>
{% endblock %}
</body>
</html>

截图

 

posted on 2017-11-22 17:02  069王国栋  阅读(123)  评论(0编辑  收藏  举报

导航