当前位置: 首页 > news >正文

国家住房建设部网站企业官网 开源

国家住房建设部网站,企业官网 开源,吴江区经济开发区规建设局网站,如何做网站本地服务器吗这里写目录标题一、权限的数据的特点二、首先settings.py文件中配置redis连接redis数据库一、权限的数据的特点 需要去数据库中频繁的读和写#xff0c;为了项目提高运行效率#xff0c;可以把用户的权限在每次登录的时候都缓存到redis中。这样的话#xff0c;权限判断的中… 这里写目录标题一、权限的数据的特点二、首先settings.py文件中配置redis连接redis数据库一、权限的数据的特点 需要去数据库中频繁的读和写为了项目提高运行效率可以把用户的权限在每次登录的时候都缓存到redis中。这样的话权限判断的中间件就可以方便的从redis中得到当前用户的所有权限从而判断。 对于那些数据量大并且需要频繁的读写一定需要做缓存的 在默认的app中定义utils包创建cache_permissions.py 二、首先settings.py文件中配置redis # 配置Redis数据库 CACHES {default: { # 默认BACKEND: django_redis.cache.RedisCache,#LOCATION: redis://82.156.178.247:6379/0,LOCATION: redis://127.0.0.1:6379/0,OPTIONS: {CLIENT_CLASS: django_redis.client.DefaultClient,}},session: { # sessionBACKEND: django_redis.cache.RedisCache,# LOCATION: redis://82.156.178.247:6379/1,LOCATION: redis://127.0.0.1:6379/1,OPTIONS: {CLIENT_CLASS: django_redis.client.DefaultClient,}},verify_code: { # 验证码BACKEND: django_redis.cache.RedisCache,# LOCATION: redis://82.156.178.247:6379/2,LOCATION: redis://127.0.0.1:6379/2,OPTIONS: {CLIENT_CLASS: django_redis.client.DefaultClient,}}, } SESSION_ENGINE django.contrib.sessions.backends.cache SESSION_CACHE_ALIAS session连接redis数据库 首先安装django-redis pip install django-reids 获得redis数据库的连接 from django_redis import get_redis_connection redis_connget_redis_connection(“default”) 以哈希的方式存储数据到redis中 redis_conn.hmset(f’user.id’,permissions_dict) 把当前用户的权限信息缓存到redis数据库中 redis中存放用户权限的结构为user_用户id——字典{key:path,value[列表]}——》json字符串 from erp_system.models import MenuModel,PermissionsModel import json from django_redis import get_redis_connectiondef redis_storage_permissions(user):把当前用户的权限信息缓存到redis数据库中redis中存放用户权限的结构为user_用户id——字典{key:path,value[列表]}——》json字符串#查询当前登录用户拥有的权限id列表values_list: 返回列表中套元组values返回列表中套字典permission_ids user.roles.values_list(permissions, flatTrue).distinct()#根据权限id获取权限的所有值一级菜单的权限除外permissionsPermissionsModel.objects.filter(is_menuFalse,id__inpermission_ids).values(id,path,method,name)#permissions是查询集嵌套字典的列表if not permissions.exists(): #没有查询到权限returnpermissions_dict{} #todo 存放当前用户的权限,path为keyfor permission in permissions:#因为数据需要转换成json格式的字符串所以排除那些特殊符号#\u200b是Unicode中的零度字符可以理解为不可见字符例如回车、换行符、制表符methodstr(permission.get(method)).replace(\u200b,)pathstr(permission.get(path)).replace(\u200b,)_namestr(permission.get(name)).replace(\u200b,)_idpermission.get(id)if path in permissions_dict:permissions_dict[path].append({ #todo 一个请求路径有很多的权限增删改查只是method不同method:method,sign:_name,id:_id})else:permissions_dict[path][{ #如果没有path添加进去method: method,sign: _name,id: _id}]for key in permissions_dict:permissions_dict[key]json.dumps(permissions_dict[key])print(permissions_dict)#todo 存放到redis中redis_connget_redis_connection(default) #todo 获得redis数据库的连接redis_conn.hmset(fuser_{user.id},permissions_dict) # todo 以哈希的方式存放数据到redis用户认证通过后自动调用redis_storage_permissions(user)方法 from django.contrib.auth.backends import ModelBackend from .models import UserModel import logging from erp_project.utils.cache_permissions import redis_storage_permissionslogger logging.getLogger(erp)class UserLoginAuth(ModelBackend):def authenticate(self, request, usernameNone, passwordNone, **kwargs):实现用户认证try:user UserModel.objects.get(usernameusername)logger.info(user)except:return None#判断密码if user.check_password(password):redis_storage_permissions(user) #todo 调用缓存数据的方法return user # 把user对象放到request对象中登录操作后查看缓存中的数据
http://www.dnsts.com.cn/news/68477.html

相关文章:

  • 绵阳网站建设培训论坛类网站备案
  • 淘掌门官方网站企业邮箱申请域名
  • 微博网站认证 备案名称百度网站建设工具
  • 新网站建设信息免费咨询律师的软件
  • 学做视频的网站有哪些内容wordpress主题模块添加
  • 健身所网站建设策划书seo网站排名优化工具
  • 邵阳市网站建设在线做漫画的网站
  • 网站零基础学电脑培训班靖江建设行业协会网站
  • 网站内容专题怎么做网站快速排名方法
  • 网站制作的公司哪家效果好枣庄做网站建设找哪家
  • 佛山做pc端网站农产品信息网站建设方案
  • 网站移动字幕要怎么做海外推广渠道
  • 外贸平台都有什么网站服务器安全设置
  • 网站图片要求建站公司 深圳
  • 网站服务内容网站建设手机免费图片制作软件
  • 公司网站设计 优帮云天元建设集团有限公司管理
  • 手机网站设计要求免费空间小说
  • dw怎么做网站轮播图网站网站设计的公司
  • 公司网站集资网站开发人员犯法么wordpress建好站了打不开首页
  • 大连手机网站建设深圳做商城网站
  • 教学网站开发背景中国著名十大vi设计案例
  • 昌吉建设网站网站关键词seo推广公司哪家好
  • 注册网站步骤Wordpress实现中英文
  • 建筑装饰公司做网站的作用北京企业网站seo平台
  • 收费的网站怎么做的电子商务网站源码下载
  • 珠宝网站建设平台分析报告网站空间服务器续费
  • 小说网站签约作者应该怎么做做多语言网站多少钱
  • 宁夏住房和城乡建设厅门户网站做网页用什么软件写代码
  • 网站搭建和网页设计网站 稳定性
  • 品牌网站建设内容wordpress资源下载主题