Flask 实现员工只能查看自身信息,领导可查看全部信息
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()
代码解析
- 定义员工列表:
employees列表包含了所有员工的信息,包括 ID、姓名和角色。 - 登录验证:
index()函数处理登录请求。通过判断用户名和密码,来确定用户的角色。 - 渲染模板: 根据用户的角色,渲染不同的模板。
- 员工登录成功,渲染
employee.html,并将员工信息传递给模板。 - 领导登录成功,渲染
leader.html,并将所有员工信息传递给模板。
- 员工登录成功,渲染
- 登录错误处理: 如果用户名或密码错误,则返回错误消息。
模板编写
你需要根据需求自行编写 employee.html、leader.html 和 login.html 模板,用于展示不同信息。
注意: 上述代码仅仅是一个简单示例,没有包含真正的用户认证和授权功能,实际开发中需要根据需求进行完善和安全性处理。
总结
本文展示了使用 Flask 框架实现简单的员工信息查看权限控制功能,你可以根据自己的实际情况进行扩展和改进,例如添加更完善的用户认证和授权机制,以及更复杂的信息展示功能。
原文地址: http://www.cveoy.top/t/topic/pbYo 著作权归作者所有。请勿转载和采集!