Flask 实现员工只能查看自身信息,领导可查看全部信息

本文介绍使用 Flask 框架实现一个简单的权限控制功能,使得员工只能查看自己的信息,而领导可以查看所有员工信息。该功能可以通过登录功能来区分员工和领导。

代码示例

from flask import Flask, render_template, request

app = Flask(__name__)

# 假设有两个员工和一个领导
employees = [
    {'id': 1, 'name': '员工1', 'role': '员工'},
    {'id': 2, 'name': '员工2', 'role': '员工'},
    {'id': 3, 'name': '领导', 'role': '领导'}
]

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        # 获取登录表单数据
        username = request.form.get('username')
        password = request.form.get('password')
        
        # 假设员工1和员工2的用户名和密码都是相同的
        if username == 'employee' and password == 'password':
            employee = next((e for e in employees if e['name'] == '员工1'), None)
            if employee:
                return render_template('employee.html', employee=employee)
        elif username == 'leader' and password == 'password':
            return render_template('leader.html', employees=employees)
        
        # 登录失败时返回错误消息
        error_message = '用户名或密码错误'
        return render_template('login.html', error_message=error_message)
    
    return render_template('login.html')

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

代码解析

  1. 定义员工列表: employees 列表包含了所有员工的信息,包括 ID、姓名和角色。
  2. 登录验证: index() 函数处理登录请求。通过判断用户名和密码,来确定用户的角色。
  3. 渲染模板: 根据用户的角色,渲染不同的模板。
    • 员工登录成功,渲染 employee.html,并将员工信息传递给模板。
    • 领导登录成功,渲染 leader.html,并将所有员工信息传递给模板。
  4. 登录错误处理: 如果用户名或密码错误,则返回错误消息。

模板编写

你需要根据需求自行编写 employee.htmlleader.htmllogin.html 模板,用于展示不同信息。

注意: 上述代码仅仅是一个简单示例,没有包含真正的用户认证和授权功能,实际开发中需要根据需求进行完善和安全性处理。

总结

本文展示了使用 Flask 框架实现简单的员工信息查看权限控制功能,你可以根据自己的实际情况进行扩展和改进,例如添加更完善的用户认证和授权机制,以及更复杂的信息展示功能。

Flask 实现员工只能查看自身信息,领导可查看全部信息

原文地址: http://www.cveoy.top/t/topic/pbYo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录