首页 > 解决方案 > 仅当特定用户登录时,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'))

标签: pythonhtmlmysqlsqlflask

解决方案


正如您检查用户是否使用 登录一样@is_logged_in,您可以使用类似的装饰器检查特定角色,例如@is_admin.

分配用户角色并检查这些角色通常比硬编码检查特定用户的身份要好得多,因为个人用户经常加入和离开,但角色相对稳定。


推荐阅读