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

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
    3. onclick="return fnLogin()"
  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

config.py:

import os

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/dianying?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False

SECRET_KEY = os.urandom(24)

主py文件:

from flask import Flask,request,render_template,redirect,url_for,session
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=TabError,autoincrement=True)
    username = db.Column(db.String(20),nullable=False)
    password = db.Column(db.String(20), nullable=False)

#db.create_all()

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

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

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


@app.route('/dl/',methods=['GET','POST'])
def dl():
    if request.method == 'GET':
        return render_template("dl.html")
    else:
        usern = request.form.get('name')
        password = request.form.get('password')
        user = User.query.filter(User.username == usern).first()
        if user:
            if user.password == password:
                session['user'] = usern
                return redirect(url_for('sy'))
            else:
                return '密码错误(〃>皿<)'
        else:
            return '用户不存在┌(。Д。)┐'

@app.route('/zc/',methods=['GET','POST'])
def zc():
    if request.method == 'GET':
        return render_template("zc.html")
    else:
        usern = request.form.get('name')
        password = request.form.get('password')
        user = User.query.filter(User.username == usern).first()
        if user:
            return '用户名已存在┗|*`0′*|┛ '
        else:
            user1 = User(username=usern, password=password)
            db.session.add(user1)
            db.session.commit()
            return redirect(url_for('dl'))


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

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

登录HTML:

{% extends 'dh.html' %}
{% block title %}
登录
{% endblock %}
{% block main %}
    <link rel="stylesheet" type="text/css" href="../static/css/dl.css">
    <script src="../static/js/dl.js"></script>
</head>
<body>

<div class="box" >
    <form action="{{url_for('dl')}}" method="post">
    <div class="container" style="width: 400px"align="center">
    <div class="dl" style="background-color:#c8a4fa;width:400px"><h2 align="center" style="margin-bottom: 0;width:400px">✉登  录✉</h2></div>
    <div class="content" style="background-color:lightpink;height:205px;width:400px;float:left;">
    <div class="xx" align="center">
        <p> </p>
        账  户:<input id="name" type="text"placeholder="请输入用户名" name="name"><br>
        密  码:<input id="password" type="password"placeholder="请输入密码" name="password">
        <p> </p>
        </div>
        <div id="error_box"><br></div>
        <p>  </p>
      <div class="an" >
         <button onclick="myLogin()">登录</button>
         <button type="button" onclick=window.alert("是否取消登录!")>取消</button>

         </div>

    </div>
     </div>
    </form>
</div>
</body>
</html>

{% endblock %}

 

 

posted @ 2017-11-22 16:17  101黎思琦  阅读(136)  评论(0编辑  收藏  举报