自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你呢的博客

每天多一点...

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

原创 实现LRU缓存机制

题目LRU 缓存机制,设计和实现一个 LRU(最近最少使用)缓存数据结构。LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存。get(key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回一个默认值。put(key, value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「key-value」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间时间复杂度要求O(1

2020-11-24 00:12:41 513 1

原创 Python的全局锁

介绍GIL (Global Interperter Lock) 称作全局解释器锁,也可以称它为全局排他锁。GIL只在CPython中存在。比如JPython就没有这个概念。GIL对程序的影响在python多线程的情况下,每个线程的执行方式是这样的获取GIL -> 执行代码,直到遇到IO操作,执行了一定的代码量(python2),执行了一定的时间(python3) -> 释放GIL那么问题来了,GIL是全局锁,也就是一个进程中只有一个,没有拿到GIL就不允许在CPU中执行,所以Pytho

2020-11-22 22:53:05 1876 2

原创 浅谈Django的Signals的实现

浅谈Django的Signals的实现在说Signals的实现之前,需要先了解一下发布/订阅模型模型介绍发布订阅是一种消息范式,消息的发送者不会将消息直接发送给特定的接收者。而是将消息发送某个频道上,无需了解哪些订阅者可能存在。同样的,订阅者可以表达对一个或多个频道的兴趣,只接收感兴趣的消息,无需了解哪些发布者存在。发布者即消息的生产者。频道一个消息的通道,标识发布者需要将消息发送到哪一个消息通道。订阅者即消息接收者。Django提供的Signals与model有关的signalsf

2020-11-22 15:57:59 339

原创 SQLALCHEMY的简单使用

SQLAlchemy声明写这篇文章的目的只是为了自己在遇到问题时方便查找,文中会有SqlAlchemy官方文档中的内容。sqlalchemy是一个对象关系映射器, 提供了一种将用户定义的Python类与数据库表以及这些类(对象)的实例与相应表中的行关联起来的方法。ORM即Object - Relation - Mapping创建连接使用SQLAlchemy的第一步是创建一个数据库连接,这里使用的是mysql数据库from sqlalchemy import create_engineeng

2020-10-26 22:19:37 773

原创 本地部署一个yapi

本地部署一个yapigit clone项目,将项目clone到本地git clone https://gitee.com/mirrors/YApi.git修改配置文件{ "port": "3000", "adminAccount": "[email protected]", "closeRegister":true, "versionNotify": true, "timeout":120000, "db": { "servername": "mongo", "D

2020-10-14 22:47:17 593

原创 常用设计模式

Head First设计模式设计原则找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起针对接口编程,而不是针对实现编程多用组合,少用继承为了交互对象之间的松耦合设计而努力类应该对扩展开放,对修改封闭要依赖抽象,不要依赖具体类策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。换一句话说,将应用中的某些行为进行一次分类,分别封装。也可以达到动态定义的作用。这与python中的鸭子类型很相似。鸭子类型:通俗点说,

2020-10-14 22:44:32 153

原创 Java中的修饰符

Java中的修饰符访问控制修饰符修饰符当前类当前包子类其他包public可访问可访问可访问可访问protected可访问可访问可访问不可访问default可访问可访问不可访问不可访问private可访问不可访问不可访问不可访问非访问修饰符static修饰符被static修饰的变量称为静态变量,即无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。被s

2020-10-14 22:42:06 211

原创 python中使用+号合并列表与使用extend合并列表的区别

今天去参加了一个面试,面试的第一题就让我很懵逼???问题是list1 = list1+list2与list1.extend(list2)的区别当时我心里想,这不都是一样的操吗?不都是合并两个列表吗?你要是说字符串的+操作与join操作我还能balabala一大堆。面试结束后,我又去看了一遍源码?????然后动手实操了一下??当时我的心情跟吃了X一样。第一个操作返回了一个新的list对象,而ex...

2020-03-25 20:51:25 838 1

原创 Python类中的实例方法,类方法与静态方法

从实现上看class Simple: def __init__(self): pass def method(self): pass @classmethod def classmethod(cls): pass @staticmethod ...

2020-03-25 20:03:52 336

原创 Django REST framework - View 视图

APIViewAPIView是rest framework中最常用也是最基本的一个视图。APIView继承自Django的View视图,并对Django的原生request进行了一些封装,主要封装了验证、权限、节流三部分。先看一下APIView中验证、权限、节流的流程是怎样的验证rest framework提供了一个验证的基类与4个验证类class BaseAuthenticati...

2020-03-23 23:10:14 300

原创 在django中使用celery

celery已经会使用了,那么如何在django中使用呢还是先去看了看官方文档,要简单的使用还是很简单的。先把django安装一下 pip install django django-admin startproject demo django-admin startapp simple现在我们已经创建了一个project,并创建了一个app,现在我们的目...

2020-03-12 10:57:51 675

原创 Celery分布式任务队列学习总结(踩坑指南)

首先,请叫我踩坑小王子,我感觉我已经把能踩的坑都猜完了学习第一步,看文档,写一个小demo。文档当然是去官网看,看了一会,OK,没得问题 开始 Problem Description Input Output Sample InputSample Output 题目网址: 分析题意: 思路: 代码...

2020-03-11 12:34:24 398 1

原创 Python的Dict对象

Dict对象看这一部分源码的时候可以参考java的hashmap的源码进行对比,有很多类似的地方struct _dictkeysobject { Py_ssize_t dk_refcnt; Py_ssize_t dk_size; // hash table允许容纳元素的个数 必定是2的指数 dict_lookup_func dk_lookup; Py_ssiz...

2020-02-12 23:06:47 856 1

原创 python的List对象

**PyListObject对象**```ctypedef struct { PyObject_VAR_HEAD PyObject **ob_itemc; Py_ssize_t allocated;} PyListObject;```ob_itemc是指向元素列表的一个指针,在PyListObject对象中,有一个allocated字段,那么这个字段与PyObject_VAR_HEAD中的ob_size字段有什么关系呢?实际上,allocated指的是当前对象可容纳的元素的

2020-02-12 16:48:44 2136

原创 python的字符串对象

python3中采用的是unicode编码方式typedef struct { PyObject_HEAD Py_ssize_t length; /* Number of code points in the string */ Py_hash_t hash; /* Hash value; -1 if not set */ ...

2020-02-11 21:42:50 556

原创 python的整数对象

在看整数对象之前,要先看一下python最基本的一个数据结构,即PyObject,它是python对象机制的核心[Include/object.h]typedef struct _object { _PyObject_HEAD_EXTRA Py_ssize_t ob_refcnt; struct _typeobject *ob_type;} PyObject;可以...

2020-02-10 21:48:49 743 1

原创 python中的itertools与iter

ptyhon中的itertools模块的使用无限迭代器这三个方法会生成一个无限的迭代器,也就是说,如果你用for进行访问的化,程序不会终止,只有在按下ctrl+c的时候才会结束,如果一直不结束就会导致系统内存被占满而引起系统崩溃名称Argumentsresultannotationcount()start, [step]start, start+step, sta...

2019-09-10 10:49:57 577

原创 Django REST framework-学习日志-1-serializers

什么是RESTREST是一种设计规范,符合这种规范的API都可以称作RESTful API,那怎样的才算是符合,根据我自己的理解再加上在知乎上看过许多相关的信息,接用知乎上的以为用户的总结:看Url就知道要什么,看http method就知道干什么,看http status code就知道结果如何编写RESTful API的第一步serializationfrom rest_frame...

2019-09-01 19:55:02 426

原创 Selenium-自动化测试-python

Selenium测试工具什么是SeleniumSelenium 是web自动化测试工具集,包括IDE、Grid、RC(selenium 1.0)WebDriver(selenium 2.0)等。Selenium IDE 是firefox浏览器的一个插件。提供简单的脚本录制、编辑与回放功能。Selenium Grid 是用来对测试脚步做分布式处理。现在已经集成到selenium server...

2019-08-30 18:00:41 663

原创 在通过selenium登陆知乎的时候提示请求信息异常

参考文章:https://www.v2ex.com/amp/t/534322今天在学习selenium的时候尝试了一下登陆知乎,本来我觉着我这不就是通过浏览器进行登陆的,肯定没有问题,然而,打脸来的太快了,提示了求情信息异常,好吧,我很菜,在通过百度过后解决了问题(菜鸡一枚,不会就百度)首先我们先来想一下,使用selenium操作浏览器与人工操作浏览器有什么不同(小声嘀咕,能有啥不同),简单的...

2019-08-25 19:29:13 3663 4

原创 如何构建自己的IP代理池

在学习爬虫的过程中,肯定遇到过被封IP的问题,这个时候我们就需要去用代理来帮我们完成爬取任务,然而,爬着爬着又被封了,好,再换一个代理,一会过后又封了。这种情况有两种方法来解决方法一:对我们的爬虫进行限速,使爬取速度接近人工访问的速度方法二:使用代理池在这里只说明一下代理池,我们可以使用西刺的免费代理,将其爬取下来存在数据库中,这样只需要在每次爬取的时候从数据库中取一个IP就可以了下面是从...

2019-08-24 18:47:17 1367

原创 Scrapy学习笔记--settings

settins中的一些配置 # 你的爬虫项目的名字 BOT_NAME # 搜索你编写的spider的目录,为一个列表 SPIDER_MODULES # 新建的spider的目录 NEWSPIDER_MODULE # 是否遵循网站的robots.txt来爬取数据 ROBOTSETXT_OBEY # 设置请求的标识 USER_AGENT # 配置scrapy执行的最大并发请求,默...

2019-08-11 19:20:06 721

原创 在windows下安装scrapy

windows下的安装方法pip install scrapy错误解决方法Twisted安装错误:直接去下载编译好的包安装,去下载,找对应你的python版本就好了(安装的时候我只遇到了这一个问题。。。)运行的时候出现的错误:无法导入win32api包:下载相应版本的pywin32包进行安装。如果没有你对应版本的,就需要你更换python的版本了,建议不要用最新版本的python。...

2019-08-09 11:09:24 666

原创 PAT 1001 A+B Format

PAT 1001 A+B FormatTime Limit : 400 msMemory Limit : 64 MB Problem DescriptionCalculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by c...

2019-07-10 19:50:21 609

原创 简单的排序:冒泡排序,选择排序,快速排序和归并排序。

今天对一些排序简单的总结了一下,主要有冒泡排序,选择排序,快速排序和归并排序。int a[10] = {8,5,2,3,6,9,7,4,1,0};冒泡排序冒泡排序应该是我们在学习过程中学习到的第一个排序算法,for (int i=0;i<10-1;i++) for (int j=0;j<10-i;j++) { if (a[j]>a[j+1])...

2019-07-10 12:29:12 2309 1

原创 在django中实现邮件发送

今天看了下如何在django中发送邮件,看的时候有些地方不懂,但是在实践了一下后就明白了,废话不多说,直接上笔记 from django.core.mail import send_mail, send_mass_mail, mail_admins # 单发的邮件 """ send_main(subject,message,from_email,recipient_list,fai...

2019-06-28 23:56:11 1223

原创 django中有关用户的操作

1、创建用户 from django.contrib.auth.models import User user = User.objects.create_user('用户名','邮箱','密码')2、修改密码 user.set_password('新密码') user.save()3、用户验证用来验证是否有该数据,认证通过则返回一个User类对象,一项都没通过...

2019-06-28 20:54:24 1018

原创 django中的redis缓存

首先先来说一下缓存的基本操作 from django.core.cache import cache # 设置缓存数据, version用来控制版本,不同的版本之间的数据不互通 cache.set(key, value, timeout=default_timeout, version) # 获取缓存的数据,如果设置了default,则在没有获取到改key的值时,使用default ca...

2019-06-28 20:37:55 1233

原创 反转链表

之前在网上看到一道题,如何将一个链表反转,当时没有实践做,现在来写一下。有些东西不当时写下来过段时间就会容易忘掉首先我们先来创建一个单链表,这里我们选择尾插法来构建struct node{ int num; struct node * next;};int main(){ node *head; node *s, *p, *r; head = (...

2019-06-25 00:35:01 616

原创 解决django项目部署到服务器xadmin与admin样式无法加载的问题(本人已解决)

第一:保证你的settins文件中有STATIC_ROOT字段第二:保证你的STATIC_ROOT字段的路径与你工程里的static路径相同第三:执行python manage.py collectstatic命令搜集静态文件,且保证你的nginx配置了相关的路径第四:重新启动uwsgi与nginx重启方法 uwsgi --reload master.pid # 这里是你的pid文件...

2019-05-27 22:40:24 2794

原创 linux中的一些基础操作

关闭与某个端口相关的进程 fuser -k 8000/tcp

2019-05-27 21:05:45 654

原创 如何在服务器中安装python、mysql、uwsgi、nginx并启动服务

首先要以root用户登陆你的服务器 apt-get install software-properties-common add-apt repostitory ppa:jonathonf/python3.6 apt-get uodate apt-get install python3.6在中间如果需要你输入Y or N,请输入Y然后继续就可以了这个时候你的python3的版本仍然是...

2019-05-25 19:10:27 1040

原创 python中的__init__、__new__、__call__

不知道大家在学习python的时候有没有遇到过这几个方法,我最近看了一下,下面这是我的理解首先,先来说说__init__,这是一个初始化函数,是对你定义的类进行初始化的,对比我们的其他语言,是不是发现有什么区别,你不知道python的构造函数在哪。python类中的构造函数就是__new__了 class Some(object): def __new__(cls, num): ...

2019-05-23 21:43:51 1071

原创 安装xadmin踩坑指南

我在安装xadmin的时候踩到了很多坑,有远程拒绝访问,有编码方式错误,有版本不匹配,我自己都很佩服我自己。**那么先来说说版本问题**如果你的django是2.0或者以下的时候,直接使用下面语句安装就行了

2019-05-17 17:39:17 1260

原创 在django中使用sql语句查询

django中提供了一个raw()方法来使用sql语句进行查询 class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) birth_date = models.DateField(max_leng...

2019-05-13 21:37:34 3210

原创 JavaScript之BOM操作

BOM :浏览器对象模型可以通过全局对象window来访问 window.document // 当前页面的文档(源码) window.frames // 框架集合 window.navigator // 浏览器及其功能信息 window.screen // 屏幕信息 window.location window.history // 历史信息 window.close() ...

2019-05-12 21:17:41 676 2

原创 Django之Meta选项

''' 数据库模型 每个属性代表一个数据库的字段'''# CharField 相当于 varchar''' Meta选项'''# app_label# 用来指定你的model是属于哪个app''' 继承一:'''# 抽象基类,如果你需要将一些公共信息放在许多模型中,可以在Meta选项中设置# abstract = True 表示作为一个基...

2019-05-09 19:50:00 1192

原创 python之time模块

计算时间的两种方式UTC 世界标准时间DST 在夏季调快一个小时获取时间 # 返回当前时间的时间戳,浮点数形式 time.time() # 获取UTC时间元组,可以传入一个时间戳,将其转换为元组 time.gmtime() # 获取本地时间元组,可以传入一个时间戳,将其转换为元组 time.localtime() # 元组—>时间戳 time.mktime(time)...

2019-04-27 22:13:25 666

原创 python之OS模块

OS模块包含了普通的操作系统的功能下面是一些简单的操作 import os # 获取操作系统的类型 print(os.name) # 打印操作系统的详细的信息,Windows系统不支持 print(os.uname()) # 获取操作系统中的所有环境变量 print(os.environ) # 获取指定环境变量 print(os.environ.get("APPDATA"))...

2019-04-27 21:13:27 655

原创 python之文件操作

打开文件的几种方式 r(只读,文件的描述符在开头) rb(二进制格式打开,只读,文件的描述符在开头) r+(读写,文件的描述符在开头) w(只写,文件的描述符在开头,若文件存在则会覆盖,若不存在就会创建一个) wb(二进制写入文件,文件的描述符在开头,同前) w+(读写) a(打开文件,用于追加内容,文件若存在描述符在末尾) ab(二进制追加内容) a+(读写,文件的描述符...

2019-04-27 21:02:18 662

空空如也

空空如也

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

TA关注的人

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