flask自己写登录验证和角色验证

news/2024/5/15 18:12:44

python flask程序需要用户登录也需要角色验证,可以采用如下方法

def is_login(func):@wraps(func)def inner(*args,**kwargs):user = session.get('user')if not user:return redirect(url_for('login'))return func(*args,**kwargs)return innerdef roles_required(*args1):def outer(func):@wraps(*args1)def inner(*args,**kwargs):user = session.get('user')if not user:return redirect(url_for('login'))else:sql="select role from users where username='{}'".format(user)flag=len(mydb.get_all(sql))if flag:result=mydb.get_all(sql)if result[0]['role'] in args1:print(f"{result[0]['role']}{args1}中")return func(*args, **kwargs)else:print('用户权限不足')return redirect(url_for('index'))else:print('用户没有登录')return redirect(url_for('login'))return innerreturn outer

函数代码

@app.route('/userjson',methods=['GET','POST'],endpoint='userjson')
@roles_required('admin')
def userjson():sql='select * from users'data=mydb.get_all(sql)info = request.valuesprint(info)limit = info.get('limit', 10)  # 每页显示的条数offset = info.get('offset', 0)  # 分片数,(页码-1)*limit,它表示一段数据的起点username = info.get('uname','')if  username:sql="select * from users where username='{}'".format(username)print(sql)data=mydb.get_all(sql)return jsonify({'total': len(data), 'rows': data[int(offset):(int(offset) + int(limit))]})

这个的需要admin权限用户才可以访问


http://www.mrgr.cn/p/75626858

相关文章

Git的安装以及本地仓库的创建和配置

文章目录 1.Git简介2.安装Git2.1在Centos上安装git2.2 在ubuntu上安装git 3.创建本地仓库4.配置本地仓库 1.Git简介 Git是一个分布式版本控制系统,用于跟踪和管理文件的更改。它可以记录和存储代码的所有历史版本,并可以方便地进行分支管理、合并代码和协…