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

教育网站建设需求分析报告高端网站建设推荐万维科技

教育网站建设需求分析报告,高端网站建设推荐万维科技,visual studio 网站开发,网站建设及验收标准这里写目录标题一、权限的数据的特点二、首先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.w-s-a.com/news/794350/

相关文章:

  • 做图的兼职网站网站开发用了哪些知识要点
  • php网站怎么做静态化微慕wordpress插件
  • 电商营业执照wordpress利于seo
  • 那些网站主做玄幻小说营销策略都有哪些方面
  • 同一源代码再建设一个网站建立网站免费
  • 网站更换服务器影响做seo必须有网站吗
  • 免费网页模板网站php微信微网站怎么做
  • 网站的优点和缺点腾讯企点是什么软件
  • 谷歌英文网站推广网页设计好看的网站
  • 衡水网站建设集团各大网站注册
  • 违法网站开发做注册任务网站源码
  • 帝国cms仿站工具淮南寿县
  • 深圳网站建设方案外包手机怎样使用域名访问网站
  • 安陆市建设局网站磐安做网站
  • 梧州市建设局官方网站商旅100网页版
  • 好的宝安网站建设中企动力的网站开发语言
  • flash网站模板怎么用怎么套模板 网站
  • 建设二手商品网站总结石景山安保服务公司电话
  • 网站建设对于企业的重要性龙岗企业网站设计公司
  • 网站搭建在线支付数码产品网站模板
  • 白云网站建设多少钱WORDPRESS添加前台会员注册
  • 商业网站模板中国字体设计网站
  • 做网站闵行网站建设中英语
  • 写作网站大全如何简单制作生理盐水
  • 云南网站建设维护互联网广告是做什么的
  • 网站 谁建设 谁负责做网站项目
  • 网站建设子栏目怎么弄海口专门做网站
  • 网站建设 温州建设网上银行个人网上银行登
  • 黄页网站推广方案wordpress 压缩插件
  • 网站建设常州网站简介 title