摘要:
一级菜单效果图 权限表: 一、 先登录,访问login 业务app/views/accounts.py 业务app/forms/accounts.py login的form表单验证。用户名和密码是否正确也在这里验证。 二、登录成功后初始化用户权限 rbac/service/init_permissi 阅读全文
摘要:
一、用途 广度优先算法是为了解决两样东西之间的最短距离,其中最短距离的含义很多,如: 编写国际跳棋AI,计算最少走多少步就可获胜 编写拼写检查器, 计算最少编辑多少个地方就可将错拼的单词改成正确的单词 根据你的人际关系网络找到关系最近的医生 二、图 图由节点和边组成,模拟一组链接。 三、广度优先搜索 阅读全文
摘要:
一、django 1 版本 routers.py views.py 二、django 2版本 django 2版本有些坑,和django 1版本的用法略有不同。谷歌查了半天,只查到模块名变了,没查到用法。没办法,只能取看源码,只能看到参数名变了,瞎试了试,居然能用。 routers.py views 阅读全文
摘要:
1. 散列函数 散列函数就是将输入映射到数字。它必须满足两个条件: 如下图所示: 散列函数可以准确的指出价格的存储位置,具体原因如下: 散列函数总是将同样的输入映射到相同的索引。也就是说apple永远在第四个格子上 散列函数将不同的输入映射到不同的索引。apple的索引为3,milk的索引为0 散列 阅读全文
摘要:
快速排序比选择排序要快得多,采用分而治之的思想,具体实现是用递归。 1. 基线条件 数组为空或只包含一个元素 2. 递归条件 将数组分解,直到满足基线条件 3. 工作原理 4. 代码实现 5. 合并排序和选择排序 这里要说一下合并排序,运行时间为O(n log n)。而快速排序在最糟糕的情况下的运行 阅读全文
摘要:
谓“分而治之” 就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,把各部分的解组成整个问题的解。注意分而治之不是算法,而是一种解决问题的思路 工作原理 1) 找出简单的基线条件; (2) 确定如何缩小问题的规模,使其符合基线条件。 例子 假设 阅读全文
摘要:
class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('obj[key]时,我执行') print(self.__dict__[item]) def __setitem__(self, key, v... 阅读全文
摘要:
递归就是不断调用自己,让解决方案更清晰,但是没有性能上的优势。使用情景参考Stack Overflow的一个答案:“如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。” 基线条件和递归条件 每个递归函数都有两部分:基线条件 (base case)和递 阅读全文
摘要:
一、python3.3之后自带的venv模块 1. 创建虚拟环境 2. 加入虚拟环境目录 3. 激活虚拟环境 4. 退出虚拟环境 二、virtualenv 1. 安装 安装到系统目录 安装到用户目录 2. 创建项目 3. 进入虚拟环境 4. 激活 5. 退出 三、autoenv(自动切换虚拟环境,项 阅读全文
摘要:
一、本质 静态属性property本质就是实现了get,set,delete三种方法 二、应用(类型检测) 阅读全文