Flask简单实例-3

# py

from flask import Flask, render_template, redirect, url_for, session
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config.from_object('setting')

db = SQLAlchemy(app=app)


''' 创建表 '''
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True, comment='用户ID')
    name = db.Column(db.String(30), comment='用户名')


# 首页
@app.route('/')
def index():
    users = User.query.order_by(User.id.desc()).all()       # 从user表中获取全部数据,按照id降序排列,赋值给users
    user_id = session.get('user_id')        # 从session中获取user_id
    one_user = ''
    if user_id:     # 判断session中是否可以获取到user_id
        one_user = User.query.get(user_id)
    return render_template('index.html', users=users, one_user=one_user)


# 用户登录
@app.route('/login')
def login():
    session['user_id'] = 1      # 往session中存储user_id
    return redirect(url_for('index'))


# 用户退出
@app.route('/logout')
def logout():
    session.pop('user_id', None)        # 从session中删除user_id,None保证没有user_id时不报错
    return redirect(url_for('index'))


if __name__ == '__main__':
    db.create_all()
    app.run()
# setting

DEBUG = True
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]/exam3?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = 'ABC'
{# index.html #}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>所有用户</title>
</head>
<body>
    您好【{{ one_user.name }}】
    <a href="{{ url_for('login') }}">登录</a>
    <a href="{{ url_for('logout') }}">退出</a>
    <hr>
    <table border="1" cellspacing="0">
        <tr>
            <td>用户ID</td>
            <td>用户名</td>
            <td>状态</td>
        </tr>
        {% for user in users %}
            <tr>
                <td>{{ user.id }}</td>
                <td>{{ user.name }}</td>
                <td>
                    {% if session.get('user_id')==user.id %}
                        当前登录用户
                    {% endif %}
                </td>
            </tr>
        {% endfor %}
    </table>


</body>
</html>

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
  • 2021-11-13
  • 2021-06-11
  • 2022-02-21
  • 2022-01-09
  • 2022-12-23
猜你喜欢
  • 2021-05-12
  • 2021-10-11
  • 2021-04-14
  • 2022-01-01
  • 2022-12-23
  • 2021-05-31
  • 2021-08-14
相关资源
相似解决方案