zoukankan      html  css  js  c++  java
  • 完成登录功能,用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 %}
  • 相关阅读:
    MyEclipse 启动报错:'Building workspace' has encountered a problem解决方法
    MyEclipse快捷键大全
    Maven学习 (四) 使用Nexus搭建Maven私服
    PHP 语法
    PHP 在Win下的安装
    PHP 简介
    【CMS】安装CMS
    【CMS】DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP') in php.ini
    mysqladmin: connect to server at 'localhost' failed
    解压版MySQL安装后初始化root密码
  • 原文地址:https://www.cnblogs.com/951111ldj/p/7881413.html
Copyright © 2011-2022 走看看