自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

年华终归属时光的博客

关于Python的一系列经验分享。

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

原创 高大上的排序算法--timsort

学习it的小伙伴们,在经过一段时间艰苦卓绝的努力学习后,在面试的时候总是会问些关于数据结构和算法的问题,其中算法是几乎必问的一项,因为它可以考验你的基础知识和思维逻辑能力。算法中排序算法是最为常见的一项了,如果要说排序算法大家一般都会想到老生常谈的八大排序算法,快排,冒泡,堆排,归并等等。而有些面试官是不单单问你这些算法是如何实现的,还会问你一些这些算法的时间复杂度啊(偶尔还会问一下空间复杂度...

2018-11-28 17:01:48 2325 4

转载 Android使用git管理的工具-repo

1. 概要repo是Android为了方便管理多个git库而开发的Python脚本。repo的出现,并非为了取代git,而是为了让Android开发者更为有效的利用git。Android源码包含数百个git库,仅仅是下载这么多git库就是一项繁重的任务,所以在下载源码时,Android就引入了repo。 Android官方推荐下载repo的方法是通过Linux curl命令,下载完后,为repo脚本添加可执行权限: $ curl https://storage.googleapis.com/g

2021-06-30 10:30:43 892

原创 Mac 解决 PostgreSQL 链接问题

mac异常关机后总是无法使用postgresql数据库,解决办法:删除postmaster.pid文件,然后重新启动postgresql。启动 PostgreSQL:pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start关闭 PostgreSQL:pg_ctl -D /usr...

2019-04-17 14:10:39 1738

转载 Django开发ORM:多表操作

表关系总结:  一对多:在多的表中建立关联字段  多对多:创建第三张表(关联表):id和两个关联字段  一对一:在两张表中的任意一张表中建立关联字段(关联字段一定要加 unique约束)子查询:一次查询结果作为另一次查询的查询条件创建模型:from django.db import models# Create your models here.cl...

2019-04-14 15:47:59 347

转载 django ORM优化之select_related

本文转载自https://www.douban.com/note/533925129/版权归作者所有,任何形式转载请联系作者。作者:petanne(来自豆瓣)来源:https://www.douban.com/note/533925129/补充:django1.5版本之后已经将select_related的**kwargs即depth删除了,递归机制与之前相同,即fields不传参数的...

2019-03-07 13:25:16 1054

原创 Shell命令(二)

shell 的 test命令a=1b=2if test $[a] -eq $[b]then      echo '两个数相等'else    echo '两个数不相等'fi代码中的[]可以执行基本的算术运算result=$[a=b]echo '$result'字符串测试文件测试if test -e ./file -o -e ./b...

2019-02-26 11:39:32 390

原创 shell命令(一)

shell 注:本文的图片摘录于runoob网站http://www.runoob.com定义变量的时候,变量名不嫁美元符号 PHP语言中需要使用定义过的变量 $name 可以加花括号识别边界 ${name}只读变量 readonly name 删除变量 unset name  不能删除只读变量局部变量 仅在当前shell实例中有效环境变量 所有的程序包括shell启动...

2019-02-22 11:56:27 408

转载 RPC的定义和原理

转载:深入浅出 RPC - 浅出篇转载:RPC框架与Dubbo完整使用转载:深入浅出 RPC - 深入篇转载:远程调用服务(RPC)和消息队列(Message Queue)对比及其适用/不适用场合分析一、RPC1. RPC是什么RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解...

2019-02-20 13:43:28 476

原创 redis实现高可用

一.哨兵机制  有了主从复制的实现以后,如果想对主服务器进行监控,那么在redis2.6以后提供了一个"哨兵"的机制。顾名思义,哨兵的含义就是监控redis系统的运行状态。可以启动多个哨兵,去监控redis数据库的运行状态。其主要功能有两点:    a、监控所有节点数据库是否在正常运行。    b、master数据库出现故障时,可以自动通过投票机制,从slave节点中选举新的maste...

2019-02-20 13:39:13 367

原创 django 对模型操作报错does not exist

今天在开发的过程中,对两个模型表的数据创建操作报错 releation /xxxx_xxxx/does not exist 我多方排查原因 还是未能解决 最终 灵机一动想到错误就是没有在INSTALL_APP中注册模块,因为注册了这个模块django才可以通过这个模块找到这个模型才能够对其进行数据的增删改查。mark。...

2019-01-25 17:18:19 1780

原创 解决django admin表的外键关联数据过多响应时间过长问题

在开发的过程中,在admin管理站点遇到一个全部由外键组成的表,这个表关联的多个表的数据量都比较庞大,在点击添加的时候,django会默认把这些表的数据全部给加载出来后才会响应,导致响应时间过长。在尝试了多种方法后,终于发现了一个方法可以很有效的解决这个问题。那就是raw_id_fields = ['tablename']这个可以让关联的表的数据 暂时不加载 等你需要的时候才加载...

2019-01-24 09:32:45 2375

转载 postgresql - (模式Schema)

一个数据库包含一个或多个命名的模式,模式又包含表。模式还包含其它命名的对象,包括数据类型、函数,以及操作符。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,schema1和myschema都可以包含叫做mytable的表。和数据库不同,模式不是严格分离的:一个用户可以访问他所连接的数据库中的任意模式中的对象,只要他有权限。    我们需要模式有以下几个主要原因:    1). 允许多...

2018-12-28 14:23:33 5465

原创 ssl报错[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed]

Python 2.7.9 之后版本引入了一个新特性当你urllib.urlopen一个 https 的时候会验证一次 SSL 证书 当目标使用的是自签名的证书时就会爆出一个urllib.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)&g...

2018-12-03 09:33:55 1061

原创 python 反爬虫策略

  作为使用python编译框架的一名后端开发人员,总不能让自己的网站数据被同行给轻易的给爬取然后让他们潇洒的扬长而去吧。下面,我就给大家介绍一下在Python的后端开发中我们能使用的一些反爬的策略。一丶初级阶段(利用第三方提供给我们的工具)如果你用的是Django这个重量级框架的话,Django已经为你造好了轮子,我们可以利用它的中间件来写一个拦截器。这里使用了HTTP的UserAg...

2018-11-28 15:39:25 350

原创 Django缓存

由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回。Django中提供了6种缓存方式:开发调试内存文件数据库Memcache缓...

2018-11-27 11:40:56 305

原创 HTTP幂等性

理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上...

2018-11-27 09:42:43 92

原创 Nginx和uWSGI部署

1. 静态文件当Django运行在生产模式时,将不再提供静态文件的支持,需要将静态文件交给静态文件服务器。我们先收集所有静态文件。项目中的静态文件除了我们使用的front中之外,django本身还有自己的静态文件,如果rest_framework、xadmin、admin、ckeditor等。我们需要收集这些静态文件,集中一起放到静态文件服务器中。我们要将收集的静态文件放到front目...

2018-11-26 18:20:42 330

原创 celery实现高并发

Celery介绍 1.Celery介绍 点击查看Celery参考文档 Celery是一个功能完备即插即用的任务队列 Celery适用异步处理问题,比如发送邮件、文件上传,图像处理等等比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验 2.Celery特点: 简单,易于使用和维护,有丰富的文档 高效,单个Celery进程每分钟可以处理数百万个...

2018-11-22 15:40:21 5474

原创 JWT用户登录状态

JWT在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。...

2018-10-10 17:09:35 4767

原创 访问Flask或者Django时出现Redis连接错误解决办法

如果redis的ip地址不是本地回环127.0.0.1,而是其他地址,访问Django时,可能出现Redis连接错误,如下:解决方法:修改redis的配置文件,添加特定ip地址。打开redis的配置文件sudo vim /etc/redis/redis.conf在如下配置项进行修改(如要添加10.211.55.5地址) 重新启动redis服务sudo ...

2018-10-03 11:37:10 1430

原创 Flask框架(五)----补充

蓝图蓝图进行模块化开发的使用流程:1.创建蓝图对象(容器)2.装饰视图函数(装视图函数)3.注册蓝图到app中(添加到app)副模块中from flask import Blueprint# 1.创建蓝图对象#参数1: 蓝图名称#参数2: 表示模块名称#参数3: url_prefix,视图函数访问前缀#参数4: static_folder,静态资源文件夹...

2018-10-03 11:29:14 141

原创 Flask框架(四)----ORM

通过ORM模型类操作数据:重点操作数据库(增删改查)查:模型类.query : 得到了该模型的所有结果集模型类.query.过滤器: 得到的又是一个新的结果集模型类.query.过滤器.执行器: 取出集里面的数据注意点:1.如果不指定数据的表名称,那么默认就是类名称的小写2.如果需要指定,通过__tablename__ = '自定义表名'增删改...

2018-10-03 11:28:21 453

原创 Flask框架(三)----Jinja2模板

Jinja2模板引擎简介Jinja2模板概述用来展示数据的html页面,这个过程也通常称为渲染,属于Jinja2的功能 使用模板的好处:视图函数只负责业务逻辑和数据处理(业务逻辑方面)而模板则取到视图函数的数据结果进行展示(视图展示方面)代码结构清晰,耦合度低二.Jinja2特点Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,...

2018-10-03 11:22:22 293

原创 Flask框架(二)

自定义异常"""abort(code):主动抛出异常状态码参数code:HTTP的错误状态码例如:abort(404)errorhandler(code_or_exception):用来监听捕捉异常,然后返回自定义的页面处理参数:code_or_exception – HTTP的错误状态码或指定异常场景: 二者配合使用,自定义异常页面"""""@app.rout...

2018-10-03 11:20:19 217

原创 Flask框架(一)

今天跟大家分享下,我之前关于flask学习的一些笔记。如果有志同道合的朋友可以互相交流交流。Flask是第三方框架。第一方是python官方吉多,第二方我们开发者自己,第三方框架工具类提供者。虚拟环境一个特殊的文件夹,里面放着程序所需要的各种环境,比如扩展包,flask版本,python解释器等内容。不同程序选用不同虚拟环境互不影响。知名的框架?web:1.flas...

2018-10-03 11:19:30 304

原创 Flask-SQLalchemy常见关系模板

常见关系模板代码以下罗列了使用关系型数据库中常见关系定义模板代码一对多示例场景:用户与其发布的帖子(用户表与帖子表)角色与所属于该角色的用户(角色表与多用户表)示例代码class Role(db.Model):    """角色表"""    __tablename__ = 'roles'    id = db.Column(db.Integer, primary_k...

2018-09-10 10:03:53 316

原创 CSRF攻击

CSRF一. 什么是CSRFToken?CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。 CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账...... 造成的问题:个人隐私泄露以及财产安全。二.CSRF攻击示意图客户端访问服务器时没有同服务器做安全验证...

2018-09-10 09:48:02 153

转载 GET和POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻...

2018-08-28 09:52:15 102

原创 Python三大神器之装饰器

 在之前的文章中写了Python的生成器和迭代器,今天给大家分享一下关于装饰器的一些知识。闭包在讲装饰器之前一定要提及的就是闭包,因为Python中的闭包是实现装饰器的基础。# 定义一个函数def test(number): # 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包 def test_in(nu...

2018-08-06 16:26:02 1081

原创 正则案例代码

1. 初步使用In [1]: import reIn [11]: re.match(r"abc","abcde").group()In [12]: re.match(r"bc","abcde").group()In [14]: re.search(r"bc","abcde").group()2. 匹配单个字符-----------------------.匹配任意字符(除\n

2018-07-26 15:51:53 123

原创 线程丶进程丶协程(三)协程

协程协程,又称微线程,纤程。英文名Coroutine。协程是什么协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,可以在...

2018-07-25 16:49:45 168

原创 Python三大神器之迭代器,生成器

迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。我们把可以通过for...in...这类语句迭代...

2018-07-23 17:47:44 179

原创 线程丶进程丶协程(二)进程(2)

进程池Pool当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进...

2018-07-23 17:28:03 168

原创 线程丶进程丶协程(二)进程

                                           进程同步: 多任务, 多个任务之间执行的时候要求有先后顺序,必须一个先执行完成之后,另一个才能继续执行, 只有一个主线异步,指的是:多个任务之间执行没有先后顺序,可以同时运行,执行的先后顺序不会有什么影响,存在的多条运行主线对于上篇计算错误的问题,可以通过线程同步来进行解决思路,如下:...

2018-07-20 20:20:59 220

原创 线程,进程,协程(一)线程

注:本文的编程语言使用的是Python。多任务的概念  多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux、windows就是支持多任务的操作系统。真正的并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。并发:指的是任务数多雨cpu核数,通过操作...

2018-07-19 19:31:09 139

原创 网络通信

关于网络的通信这块,跟大家分享一下。常用服务器ftp、ssh1. Linux常用服务器构建-ftp服务器FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。同时,它也是一个应用程...

2018-07-17 18:49:12 252

原创 ubuntu系统的基础知识点

最近复习巩固了linux系统Ubuntu的基本操作,自己做了点笔记,分享给大家。Linux 中有三种流:标准输出流,标准错误输出流,标准输入流。标准输出流:正常信息的输出,默认输出到屏幕上。标准错误输出流:错误的信息的输出,默认输出到屏幕上。标准输入流:向系统中输入数据,默认就是键盘输入的数据。我们可以通过重定向的技术,把输出、输入的信息重定向到其它的地方去。比如,我们可以把系统中的错误信息输出到...

2018-07-16 12:16:04 2033

原创 用python完成对Mysql数据库的封装

   对数据库的操作如果需要大量的信息录入的时候,便会消耗大量的时间和精力。那么在完成与python的交互后,利用Python的编程完成对Mysql数据库的封装,以使得可以在py程序中完成对数据库的操作,将会大大减少冗杂的操作,提高效率。  完成对Mysql数据库的封装需要了解以下知识:connection对象:用于建立与数据库的连接创建对象:调用connect()方法conn=connect(参...

2018-04-29 15:38:41 1041

原创 Python的深拷贝和浅拷贝

                             Python 深拷贝和浅拷贝在Python中,万物皆对象。给这个对象赋值给一个变量时,不同于C语言,python是将其添加了一个引用。那么python的拷贝分为两种,一种为深拷贝,一种为浅拷贝。那么这两种拷贝有什么区别呢?拷贝的实质python的浅拷贝是对其对象引用的拷贝,并没有将其引用的对象内容进行拷贝, 只是增加了这个对象的引用计数,数...

2018-04-23 18:40:44 301

空空如也

空空如也

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

TA关注的人

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