flask 登陆注册

from flask import Flask, request, redirect, make_response, render_template, session
from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:123456@localhost:3306/flask'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
app.config['SECRET_KEY']='521999'
db = SQLAlchemy(app)

# 创建实体类
class Register(db.Model):
    __tablename__ = 'register'   # 表名
    id = db.Column(db.Integer,primary_key=True)   # 注册表中字段
    username = db.Column(db.String(20),nullable=False,unique=True)
    password = db.Column(db.String(64),nullable=False)

# 将创建好的实体类映射到数据库
db.create_all()
# 删除数据实体类在数据路中的映射
# db.drop_all()

@app.route('/')
def index():
    return '登陆成功!!'

@app.route('/register',methods=['GET','POST'])
def register_views():
    # GET 刷新页面
    if request.method == 'GET':
        return render_template('register.html')
    else:
        # 通过post请求 获取页面信息
        uname = request.form.get('uname')
        upwd = request.form.get('upwd')
        upwd2 = request.form.get('upwd2')
        # 查询 用户名
        username = db.session.query(Register).filter_by(username=uname).first()
        # 判断用户名是否存在
        if username:
            return render_template('register.html',errors='用户名已存在')
        else:
            # 判断两次密码是否输入一直
            if upwd != upwd2:
                return render_template('register.html',errors='两次输入密码不一致')
            else:
                # 创建 Register 的实例 user
                user = Register()
                # 给属性赋值(相当于向表内填写数据)
                user.username = uname
                user.password = upwd
                # 向表中添加数据
                db.session.add(user)
                # 自动提交 上面已设置
                return '用户注册成功'

@app.route('/login', methods=['GET','POST'])
def login_views():
    if request.method == 'POST':
        # resp = redirect('/')
        # 设置 返回对象
        resp = make_response('登录成功!!!')
        # 获取数据
        uname = request.form.get('uname')
        upwd = request.form.get('upwd')
        # 数据库验证登录信息
        user = db.session.query(Register).filter_by(username=uname).first()
        #  密码是否与数据库中存储密码一致
        if user.password == upwd:
            # 添加session 对象
            session['uname']= uname
            # 是否设置保存密码
            if 'isSaved' in request.form:
                # 添加cookies对象
                resp.set_cookie('uname',uname,60*60*24*30)
                return resp
            else:
                return redirect('/')
        else:
            return render_template('login.html',errors='用户名或密码错误!')
    else:
        # 判断 是否是已登录状态
        if 'uname' in session:
            return redirect('/')
        else:
            # 判断是否曾记住密码
            if 'uname' in request.cookies:
                uname_1 = request.cookies['uname']
                session['uname']=uname_1
                return redirect('/')
            else:
                return render_template('login.html')

        return redirect('/')

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

login.html 模块




    
    Title


用户名:

密  码:

记住密码:

register.html




    
    Title
    


用户名:

密  码:

密  码:

 

你可能感兴趣的:(ORM,python3,Fask,HTML,python学习)