笔记
SundyLee32
半肉半法师
展开
-
从0开始写key-value数据库(Python语言)
""" obj.get("key") value 驱动层面对其反序列化后返回给调用者 obj.set("key : value") 有错返回异常字符串 obj.delete("key") obj.commnd("size") 返回总的数据长度 obj.commnd("key_all") 返回所有数据key obj.command("close") obj.commnd("dict_all") 返回所有数据的字典形式 {原创 2020-08-23 14:31:13 · 432 阅读 · 0 评论 -
记录使用debug-toolbar优化一个页面的sql查询次数
很明显查询博客文章这个sql语句被执行了两次,这是不允许的。打开代码去看,原因是这个页面有个功能就是:给被访问的文章增加阅读数。在增加阅读数的时候又去查询了文章在哪里,然后阅读数++。修改后: ...原创 2020-08-22 16:22:12 · 194 阅读 · 0 评论 -
从算法中的记忆化到实际开发中的缓存(python语言)
import time CACHE = dict() def query(pk): result = CACHE.get(pk) if not result: time.sleep(2) result = CACHE[pk] = pk * 100 return result start = time.time() result = query(21) print(time.time() - start) print("-----------原创 2020-08-21 16:54:35 · 198 阅读 · 0 评论 -
socket做一个简单的web服务器处理多线程
重点多线程 import socket def handle_connection(conn, addr): import time print("来新的客人了") time.sleep(10) request = "" body = "hello" response_params = [ "HTTP/1.0 200 OK", ...原创 2020-04-20 21:57:57 · 259 阅读 · 0 评论 -
python-threading中的join方法
没有join import threading, time def fun(): print("线程开始") print("我是线程%s" % threading.current_thread()) for i in range(10): time.sleep(1) print("线程结束") if __name__ == '__main__...原创 2020-04-20 21:56:01 · 3791 阅读 · 0 评论 -
python链表
class ListNode: """链表类 """ def __init__(self, val): self.val = val self.next = None # 链表头和尾 tail = ListNode(val=0) head = tail # 从尾部开始增加新的结点 for i in range(1, 10): n...原创 2020-03-25 16:18:56 · 117 阅读 · 0 评论 -
pipenv被坑一天的记录贴
从github上clone一个项目。需要用pipenv install --dev安装它的环境。一切并不顺利,有一个包一直安装失败。后来使用--python 3即可,原因应该是pipenv建立的虚拟环境的python版本出了问题。 解决办法: $ pipenv --python 3 # 用python3 建立一个新的虚拟环境 $ pipenv shell # 启动这个虚拟环境 $ pipenv ...原创 2020-03-02 22:48:53 · 506 阅读 · 0 评论 -
flask建立与连接数据库
修正自己以前的一些误解。其实像sqlite、mysql等软件其实指的是数据库管理软件。我的理解是发出的sql指令被DBMS软件解析后,DBMS再去数据仓库中做事情。比如selete * from mm被DBMS解析后,DBMS再去做事情。 1.首先必须保证flask是正常的。然后按照库。 $ pipenv install flask-sqlalchemy 2.初始化SQLAlchemy类 from...原创 2020-02-15 22:29:33 · 506 阅读 · 0 评论 -
用dockerfile创建django项目的image
dockerfile 相当于一个说明文件,告诉别人这个app需要什么环境,python什么版本等。 FROM python:3.5 # 使用python的版本。docker会去找到对于的python镜像去运行我们的app RUN apt-get update # 在构建的过程中更新下apt列表 WORKDIR /usr/src/app COPY requirements.txt ./ # ...原创 2020-01-14 21:28:04 · 403 阅读 · 0 评论 -
tableau数据分析泰坦尼克号
tableau数据分析泰坦尼克号 https://public.tableau.com/profile/sundyli#!/vizhome/1_15705902540980/sheet0原创 2019-11-13 16:26:51 · 1048 阅读 · 0 评论 -
新的想法求逆序对
在排好序的序列中找打比k1k_{1}k1小于等于的数,然后该数字后面的数字个数就是数字k1k_{1}k1的逆序对个数。 关于排序是用优先队列 关于如何找到小于等于k1k_{1}k1的数,可以用二分查找 粗略计算时间复杂度O(nlognlogn)O(nlog_{n}log_{n})O(nlognlogn) ...原创 2019-07-28 14:26:53 · 77 阅读 · 0 评论 -
扩展欧几里得算法的学习
扩展欧几里得算法基本公式ax + by = gcd(a , b) 这个公式我们不用证明,就假设它是对的。要注意几点,对于这个公式我们这么去理解,存在一对(x,y)使得ax + by = gcd(a , b)成立;那么肯定也存在一对(x1, y1)使得b * x1 + a % b * y1 = gcd(b, a%b)成立 其中a % b我们看成一个整体。关键的时候来了, 一个简单的事实是gcd(a,原创 2017-09-14 11:38:12 · 288 阅读 · 0 评论