python - 仅当特定用户登录时,python 是否可以设置为执行功能?
问题描述
我为我的工作创建了一种基于 Web 的服务台票证系统。我将flask 用于我的python web 框架工作,并且还为用户帐户和服务台票设置了几个SQL 数据库。现在,任何登录的人都可以删除票证。我想拥有它,以便只有特定的用户帐户(例如我的)才能删除票证。有没有什么方法可以在删除门票的功能中实现这一点?我虽然有 if 语句,但不确定要使用的参数。
这是删除票证的功能,我认为需要这样做:
# Delete Ticket
@app.route('/delete_ticket/<string:id>', methods=['POST'])
@is_logged_in
def delete_ticket(id):
# Create cursor
cur = mysql.connection.cursor()
# Execute
cur.execute("DELETE FROM tickets WHERE id = %s", [id])
# Commit to DB
mysql.connection.commit()
# Close connection
cur.close()
flash('Ticket Deleted', 'success')
return redirect(url_for('dashboard'))
解决方案
正如您检查用户是否使用 登录一样@is_logged_in
,您可以使用类似的装饰器检查特定角色,例如@is_admin
.
分配用户角色并检查这些角色通常比硬编码检查特定用户的身份要好得多,因为个人用户经常加入和离开,但角色相对稳定。
推荐阅读
- c# - 我的验证器不符合要求,没有返回正确的值
- excel - 如何仅将宏应用于选定行
- ios - Swift 使用estimatedItemSize 单元格在滚动期间打破单元格宽度
- java - javax.el.PropertyNotFoundException:在类型 [java.util.Optional] 上找不到属性 [operatingAirlines] - 已在 SO 上给出的答案不起作用
- php - 如何根据函数php的值自动生成number_format?
- javascript - 停止在移动设备上运行的 jQuery 图像缩放
- angular - Angular 7:更新全局变量的问题
- javascript - NodeJS 和 ReactJS:FormData 不工作
- ruby-on-rails - 添加到与另一个表共享 id 的表
- go - 仅在知道资源种类/类型时创建空的 Kubernetes 资源结构(在 golang 中)