自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

某人的博客

玉树临风前,骡驴正酣眠。

  • 博客(15)
  • 收藏
  • 关注

原创 Python高级编程相关知识

一切皆对象所有对象都是type对象的实例,type本身也是,还有就是type和object之间是鸡与蛋的关系print(type(list)) # >>> typeprint(type(type)) # >>> typeprint(type(object)) # >>> typeprint(type.__bases__) # >> object常见的内置类型内置类型的三大特征:id,type,valueNo

2020-08-20 20:56:13 1103

原创 Python中的继承顺序

继承的方式通过类名通过super()通过super(类名) :其实和第二种是一样的,不写就是默认的,默认就是此类的类名通过类名调用的时候,他的继承关系就比较明朗,调用的就是具体类的方法或者属性,但是在菱形结构中会出现重复调用的问题如果是通过super调用,它不一定会直接到父类中调用,而是通过C3算法计算得到一个元组,查找super类名在元组中的位置,然后调用它后面的类的方法C3算法比较复杂,他可以保证在多继承调用时,每个类的方法不会被重复的调用。可以通过类名.mro()查看当前类的继承调

2020-08-07 16:31:30 372

原创 Scrapy框架学习之路

安装scrapy框架pip install scrapypip install pypiwin32快速入门Spider:根据start_urls列表,自动调用start_requests()方法,想目标网站发送请求,默认是以parse作为回调函数,所以在类中有个parse函数让我们编写CrawlSpider:根据start_urls列表,发送请求;然后在rules里的规则进行过滤得到有效的连接在发送请求,各自有各自的回调函数进行处理官方的案例class AuthorSpider(scra

2020-07-28 20:41:41 651

原创 分布式锁的见解

实现分布式锁可以利用公共组件Redisredis的setnx:设置key value 当且仅当key不存在,设置成功返回1,失败返回0最简单得就是获取在redis上获取一个key,然后根据返回结果处理逻辑# 伪代码ret = redis.setnx(key,value)if ret: stock = redis.get('stock') # 100 if stock > 0: stock -= 1 else: return Respo

2020-07-22 23:38:15 135

原创 python多线程-多进程

多线程线程的创建from threading import Threadimport ost = Thread(target=os.getcwd,name='thread_1')t.start()多线程的创建from threading import Threadimport osif __name__ == "__main__": threads_list = [] for i in range(5): t = Thread(target=p

2020-07-14 22:54:46 70

原创 软件工程设计模式-Python实现

工厂方法模式工厂方法:一个抽象产品类派生出多个具体产品类;一个抽象工厂类派生出多个具体工厂类;每个具体工厂类只能创建一个具体产品类的实例。

2020-07-04 16:04:14 400

原创 Nginx动静分离-负载均衡-反向代理配置

nginx

2020-07-04 09:56:08 117

原创 对HTTP的Keep-Alive和TCP的KeepAlive的一点片面的理解

HTTP的Keep-Alive因为HTTP是以请求-响应来工作,所以在设计之初每次请求都要经过三次握手建立TCP连接,每次完成后都会在断开连接,主动释放连接的一方还要等待TIME_WAIT。为了改善这种方式出现了keep-alive,它是头部的一个字段,它的作用就是在某段时间内、规定数量内可以复用TCP连接,从而让世界变得更美好。目的:多个Http请求复用TCP连接TCP的KeepAlive在TCP连接中,如果一方没有发送断开连接的请求,然后宕机了,另一方是感觉不到了,如果一直保持连接就会

2020-06-23 18:15:15 206

原创 Django ORM select_related和prefetch_related的区别和使用

首选明确一点,这两个都是发生在表连接中,为了避免不必要的数据查询而存在创建模型类from django.db import modelsclass Publisher(models.Model): name = models.CharField(max_length=300) def __str__(self): return self.nameclass Book(models.Model): name = models.CharField(max_l

2020-06-12 10:03:56 1071

原创 Django框架知识点

Shell生成迁移文件python manager.py makegigrations <appname>执行迁移python manager.py migrate反向迁移python manager.py inspectdb <appname>ForeignKey属性db_constraint:当设置为False时,数据库中不存在连接,可以通过ER图看。on_delete:可选字段:models.CASCADE:级联删除models.SET_NULL:设置为

2020-06-10 15:39:00 242

原创 Redis小知识点

主从配置bind作用:bind是绑定本地的一个网卡,只有来自这个网卡的请求才会处理,否则拒接连接。主:redis.configbind :ip 本机ipport:6379 默认端口redis-server config从:可以有多个,从还可以有从salve.configbind :ip 本机ip,可以和从不属于同一机器port :6378 如果是同一机器就必须更改端口slaveof :47。100.179.209 6379 配置主的ip和端口号集群配置最少是3个,可

2020-06-10 13:05:49 113

原创 django-rest-framework相关知识点

Restful规范协议尽量使用HTTPs协议域名两种方式:https://api.example.com要解决跨域问题,jsonp,cros,nginx代理https://example.org/api常用的方式版本应该将api的版本号放在url中,方便迭代。面向资源,网络上全是资源所以url中不能有动词method:http动词–get–post–put–patch–delete对应了查,增,改,小改,删。还有不常用的head(获取资源的元数据)和op

2020-06-09 21:59:08 288

原创 Celery实现异步任务和定时任务

概念Celery:是一个分布式队列的管理工具。提供了管理简便的接口管理任务队列结构生产者 user: 发布任务任务队列 broker: 存储任务,常见的有redis,rabbitMQ职程(工作者) worker: 处理任务结果 backend 存储结果使用首先需要一个redis服务器用来做消息队列和存储任务的结果,这个redis可以在本地,也可以在远程,他可能是一个redis服务,也可能是redis集群。sudo apt-get install redisvim /e

2020-06-08 15:10:29 650 1

转载 Python协程-异步编程

使用python协程实现异步编程协程的作用由于Python全局解释器锁的原因,Python多线程效率不高,同一时刻只运行一个线程,但是在I/O操作不用CPU的操作频繁时,可以节省时间。协程的作用就是在遇到I/O阻塞时,去执行其他协程任务,也可以充分的利用CPU的资源,相比线程,还减少了上下文切换的开销。CPU密集型任务应该使用多进程,多进程配合协程==起飞~python3.4中加入了asyncio,然后可以通过asyncio.coroutine装饰器实现协程;python3.5中引入了as

2020-05-31 20:35:42 1554

原创 Python DRF 面试前知识点总结

数据结构和算法常见的数据结构: 数组,队列,栈,链表,堆,树,哈希表队列先进先出;Queue单项队列(from queue import Queue),deque 双向队列(from collections import deque)栈:后进先出;基本方法:push,pop,gettop,is_empty,size链表:经常使用两个指针来解决问题堆:常用来找到最大值或者最小值(构建大顶堆或者小顶堆);堆排序树:二叉树:度的最大值为2,完全二叉树:最下一层有右子树就必须有左子树,叶子节点只能出

2020-05-27 08:19:00 1129 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除