完成登录功能,用session记住用户名

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
  3. py:
    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。

session:

  1. 从`flask`中导入`session`
  2. 设置`SECRET_KEY`
  3. 操作字典一样操作`session`:增加用户名`session['username']=`username
from flask import Flask, render_template,request,redirect,url_for,session
from flask_sqlalchemy import SQLAlchemy
import confit
from functools import wraps
from datetime import datetime


app = Flask(__name__)
app.config.from_object(confit)
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(50))

# 增加
# user=User(username='yujiujiu2',password='11111',nickname='123456')
# db.session.add(user)
# db.session.commit()
#查询
# user=User.query.filter(User.username =='yujiujiu2').first()
# print(user.username,user.password,user.nickname)
#删除
# user=User.query.filter(User.username =='vixx').first()
# db.session.delete(user)
# db.session.commit()
#修改
# user=User.query.filter(User.username =='vixx').first()
# user.password='123456789'
# db.session.commit()

@app.route('/denglu/',methods=['GET','POST'])
def denglu():
    if request.method == 'get':
        return render_template('denglu.html')
    else:
        userna = request.form.get('username')
        passwo = request.form.get('password')
        user = User.query.filter(User.username == userna).first()
        if user:
            if user.password == passwo:
                return redirect(url_for('muban'))
            else:
                return u'密码错误'
        else:
            return u'用户名不存在'

@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')
        user = User.query.filter(User.username == username).first()
        if user:
            return u'用户名错误'
        else:
            user = User(username=username,password=password)
            db.session.add(user)
            db.session.commit()
            return redirect(url_for('denglu'))


@app.route('/')
def he():
    return render_template("muban.html")


@app.route('/denglu/')
def ha():
    return render_template("denglu.html")


@app.route('/zhuce/')
def hi():
    return render_template("zhuce.html")

@app.route('/shuru/')
def shu():
    return render_template("shuru.html")


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

DEBUG = True

SECRET_KEY = os.urandom(24)


SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:555220@localhost:3306/mis?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False
{% extends'muban.html' %}
{% block head %}登录{% endblock %}
{% block main %}
<div class="bigdiv">
    <div><h3>登录</h3></div>
    <form action="{{url_for('denglu')}}" method="post">
        <div>
            用户:<input id="uname" type="text" placeholder="用户名" ,name="username">
        </div>
        <br>
        <div>
            密码:<input id="upass" type="password" placeholder="密码" ,name="password">
        </div>
        <br>
        <div id="error_box"><br></div>
        <br>
        <div>
            <button class="button" onclick="fnLogin()">登录</button>
            <a href="{{ url_for('hi') }}">
                <button class="button">注册</button>
            </a>
        </div>
    </form>
    <div><h6>版权归广州商学院所有</h6></div>
    <p>如有疑问可联系广州商学院</p>
</div>
{% endblock %}
原文地址:https://www.cnblogs.com/951111ldj/p/7881413.html