zoukankan      html  css  js  c++  java
  • django第六天上课总结

    ###day19
    - 1.分页
    - 2.modelform     
    - 3.权限控制
        - 1.用户登录保存权限信息
        - 2.每次请求都通过中间件
            - url 
            - 白名单的校验
            - 登录状态的校验
            - 免认证地址的校验
            - 权限的校验
    
    
    ###模板中自定义方法
    - 1.在app下创建一个名为templatetags的python包
    - 2.在python中创建python文件  my_tag.py
    - 3.在python文件中写固定的代码
        ```python
        from django import template
        register = template.Library()  #  register 不能变
        ```
        
    - 4.定义函数 + 加装饰器
        - 1.simple_tag
        ```python
        @register.simple_tag 
        def reverse_url(name, *args, **kwargs):
        ```
        
        - 2.inclusion_tag  返回一个灵活的HTML代码段
        ```python
        @register.inclusion_tag('show_li.html')
            def show_li(num):
                return {'num':range(num)}
        ```
        
        - show_li.html
        ```html
            <ul>
                {% for i in num %}
                    <li>{{ i }}</li>
                {% endfor %}
            </ul>
        ```
    
        - 3.过滤器
        ```python
        # 权限控制到按钮级别
        @register.filter
        def has_permission(request,name):
            permission_dict = request.session.get(settings.PERMISSION_SESSION_KEY)
            if name in permission_dict:
                return True
         ```
    
    ###使用:
    - 1.导入 {% load  文件名 %}
    - 2.使用   {% 函数名 参数1  参数2 k1=v1  %}
    
        ```python
        from django.http.request import QueryDict  
        
        qd = QueryDict(mutable=True)  # 可编辑的字典
        qd['next'] = next
        qd.urlencode()    # urlencode  url编码
        qd._mutable =True   # 改为可编辑的
        qd.copy()    # 深拷贝  可编辑的字典
        ```    
    
    
    ###二级菜单
    
    - 信息管理  _>  一级菜单
        - 部门列表
        - 用户列表    _> 二级菜单
        
    - 财务管理
        - 账单管理
        - 报销管理
    
    
    - 部门管理
        - 部门列表
            - 添加部门
            - 编辑部门
            - 删除部门
    
    - 用户管理
        - 用户列表
    
    - id   url                      title    menu_id  parent_id
    - 1    /department_list/        部门列表     1         null     #  二级菜单 父权限
    - 2    /department_add/        添加部门    null       1        #  子权限
    - 3    /department_edit/(d+)/    编辑部门    null       1
    - 4    /department_del/(d+)/    删除部门    null       1
        
        
    ###用户表的问题:
    - crm 有用户表   rbac中也有用户表   最终用crm的用户表
        - 1.改rbac的用户表
        ```python
            class RbacUser(models.Model):
                # username = models.CharField('用户名', max_length=32)
                # password = models.CharField('密码', max_length=32)
                roles = models.ManyToManyField(Role, verbose_name='用户所拥有的角色', blank=True)  # Role的不要引号
    
                class Meta:
                    abstract = True  # 这张表不会在数据库中生成  当做基类 让子类去继承
    
                def __str__(self):
                    return self.username
        ```    
                    
        - 2.改crm的用户表
        ```python
       from rbac.models import RbacUser
    
            class User(RbacUser):
       ```
            
  • 相关阅读:
    利用Java API通过路径过滤上传多文件至HDFS
    docker-compose部署haproxy
    PM2 常用命令
    shell脚本循环访问url直到状态码返回200跳出循环
    CentOS 7.6安装配置Chrony同步系统时钟
    PostgreSQL9.5数据库锁表问题分析与解决
    linux系统netstat命令详解(netstat常用运维命令)
    linux目录备份脚本
    PostgreSQL 锁等待监控 珍藏级SQL
    docker部署pgadmin4并通过nginx反向代理
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/11463116.html
Copyright © 2011-2022 走看看