![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python学习
优游涵养
这个作者很懒,什么都没留下…
展开
-
python代码折叠技巧
对于大段的处理逻辑,可以使用editor-fold标签进行标记折叠处理,这样折叠后整体代码会比较容易梳理。# <editor-fold desc="数据库信息处理绑定逻辑"> # 演示代码 if old_user: if not old_info: return 'error' cur.execute('insert into xxx ') db.commit()# </editor-fold>上述代码折原创 2021-11-03 14:07:24 · 1765 阅读 · 0 评论 -
git相关操作记录
.gitignore 添加后无效的解决办法出现.gitignore并没有忽略掉我们已经添加的文件,那是因为.gitignore对已经追踪(track)的文件是无效的,需要清除缓存,清除缓存后文件将以未追踪的形式出现,这时重新添加(add)并提交(commit)就可以了。git rm -rf --cached .现在重新查看(git status)应该就没有忽略文件出现了。...原创 2021-10-21 15:52:02 · 60 阅读 · 0 评论 -
python时间计算天数差
import datetime# 获取当前时间,对象类型为:datetime.datenow_td = datetime.date.today()month = now_td.month + 4day = now_td.dayyear = now_td.year# 直接多原时间进行替换,得到的任然是时间对象future_td = now_td.replace(year=year, month=month, day=day)# 两个时间对象可以直接相减,得到的是一个新时间对象:dateti原创 2021-07-08 17:48:57 · 926 阅读 · 0 评论 -
python有意思代码记录
python列表推导式不会改变外部变量值,但是for循环会:x = 'my precious'dummy = [x for x in 'abc']print(x) # x 的值依旧是 my preciousfor x in 'def': print(x)print(x) # 这里可以看到 for 循环后 x 的值发生了改变# 输出结果为:my preciousdeff...原创 2021-03-31 14:52:31 · 181 阅读 · 1 评论 -
python中and和or的运算规则
python中and和or都是布尔运算符,作为真或的的判断操作。and是全真为真,or是一真则真。非常有意思的就是它们与not这个布尔运算不同会返回有实际意义的结果,请看如下列子:x = "hello"y = "world"z = x and yprint(z)print(z + y)# 结果为:worldworldworld注:由于and是全真才为真所以生效的判断值是an...原创 2020-02-23 11:15:05 · 3323 阅读 · 0 评论 -
python增强赋值语句
python的增强赋值语句是从C语言中借鉴来的,它有输入更少,执行更快,有优化技术自行选择等优点,建议在程序中多加使用。常用的增强赋值语句有:x += yx -= yx &= yx |= yx *= yx /= y等等…其中需要注意的就是,增强赋值中自带的优化选择功能带来的问题以列表为例,我们知道要将元素添加到列表末尾有两种方式:合并运算# 合并运算典型用法...原创 2020-02-15 23:15:38 · 656 阅读 · 0 评论 -
pycharm的使用技巧
首先pycharm的所有快捷键都在这个位置可以查找,也可以进行个性化设置,目录如下图:部分常用功能总结1、将代码块添加为注释、取消代码块注释CTRL+ / 按一次添加为注释,再按一次为取消2、快速对指定的代码块进行整体缩进和取消缩进整体缩进:选中要缩进的代码块,然后按下tab键就实现缩进4个空格。取消缩进:选中要取消缩进的代码块,然后按shift+tab组合键可以实现...原创 2020-02-15 22:51:39 · 343 阅读 · 0 评论 -
参数
import argparseparser = argparse.ArgumentParser()方法add_argument() 用来指定程序需要接受的命令参数 本例中的 echoparser.add_argument(“echo”)方法parse_args()通过分析参数返回一些数据args = parser.parse_args()像魔法方法一样,argparse自动生成变量 e...原创 2019-05-04 00:21:04 · 117 阅读 · 0 评论 -
高并发之C10K
单台服务器并发TCP连接数到底可以有多少常识一:文件句柄限制在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can’t open so many files”。进程限制执行ulimit -n输出 1024,说明对于一个进程而言最多只能打开1024个文件,所以你要采用...原创 2019-03-25 11:27:31 · 1043 阅读 · 0 评论 -
python爬虫学习
http和https的概念http:超文本传输协议,默认端口号80https:http+ssl(安全套接字层),默认端口443浏览器会主动请求js,css等内容,js会修改页面的内容,js也可以重新发送请求,最后浏览器渲染出来的内容在elements中,其中包含css,图片,js,url地址对应的响应等。爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应。浏览器渲染出来的页面...原创 2019-03-25 00:01:13 · 96 阅读 · 0 评论 -
Django的DRF框架
Django REST framework 通常简称为DRF框架,是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。原创 2019-03-23 00:40:47 · 776 阅读 · 0 评论 -
Django中请求与响应
请求利用http的几种传参路径:提取URL的特定部分,可以子啊服务端的路由正则中用正则表达式截取;查询字符串(query string),形如key1=value1&key2=value2;请求体 ( body ) 中发送的数据,比如表单数据、json、xml;在http报文的头(header)中;1、URL路径参数未命名的按定义顺序传递,如:url(r'^weat...原创 2019-03-22 23:50:47 · 120 阅读 · 0 评论 -
数据结构
在解决实际问题的时候,需要将数据保存下来,然后根据数据的存储方式来设计算法实现进行处理,那么数据的存储方式不同就会导致需要不同的算法进行处理。我们希望算法解决问题的效率越快越好,于是我们就需要考虑数据究竟如何保存的问题,这就是数据结构。Python给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组、字典。而有些数...原创 2019-03-21 23:45:18 · 116 阅读 · 0 评论 -
getopt函数
在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能。使用getopt函数可以接受到命令行传入的参数:目前有短选项和长选项两种格式。短选项格式为"-“加上单个字母选项;长选项为”–"加上一个单词。实例:建立一个demo.py文件:import getoptimport sysoptions, args = getopt.getopt(sys.argv[1:], ...原创 2019-03-19 23:04:48 · 173 阅读 · 0 评论 -
shell脚本
shell的定义:shell 是位于操作系统和应用程序之间,是他们二者最主要的接口,shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。 一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具。基本上shell分为两类:图形界面shell:即我们常说的桌面命令行式shellWindows系统:cmd.exe 命令提示符linu...原创 2019-03-19 15:31:57 · 85 阅读 · 0 评论 -
使用Git进行分布式版本控制
Git管理源代码特点Git是分布式管理,服务器和客户端都有版本控制能力,都能进行代码的提交、合并…Git会在根目录下创建一个 .git 隐藏文件夹,作为本地代码仓库Git操作流程图解Git服务器 --&gt; 本地仓库 --&gt; 客户端 --&gt; 本地仓库 --&gt; Git服务器在提交到服务器之前都是先提交到本地仓库,然后在提交到服务器在本地仓库中有三个...原创 2019-03-18 00:17:40 · 150 阅读 · 0 评论 -
python中的垃圾回收机制
python中的内存管理机制:引用计数、垃圾回收、内存池。引用计数:引用计数是一种非常高效的内存管理手段, 当一个 Python 对象被引用时其引用计数增加 1, 当其不再被一个变量引用时则计数减 1. 当引用计数等于 0 时对象被删除。垃圾回收:引用计数:+ 引用计数也是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术。当 Python 的某个对象的引用计数降为 0 ...原创 2019-03-15 18:17:35 · 234 阅读 · 0 评论 -
python装饰器实现单例模式
实现单例所利用的装饰器原理:def fun1(fun): print('fun1 action') return fun@fun1def fun2(): print('fun2 action')# 在函数执行时,类对象会作为参数传给 装饰器if __name__ == '__main__': fun2()# 运行结果:fun1 actionfu...原创 2019-03-15 17:47:36 · 243 阅读 · 0 评论 -
python函数
个人记录:uniform() 函数:uniform() 方法将随机生成下一个实数,它在 [x, y] 范围内。import randomfor i in range(1, 10): print(random.uniform(12, 20))# 运行结果:19.51582726560149418.97255764888194613.85829024419606615.44...原创 2019-03-14 17:50:04 · 98 阅读 · 0 评论 -
Flask基础知识
Flask是基于Werkzeug工具箱开发的一个轻量级的web开发框架。Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQ...原创 2019-03-12 22:45:58 · 1433 阅读 · 0 评论 -
Docker
基础知识介绍:虚拟化:在计算机中虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种 实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间 的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。Hypervisor :是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系 统和应用共享一套基础物理硬件,因此也可以看作...原创 2019-03-12 15:21:15 · 76 阅读 · 0 评论 -
Django第三方登录
以QQ登录为例:关键点就是获取到QQ的凭证openid,然后将openid跟我们的用户模型联系起来。若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现。这是QQ登录的开发者文档:http://wiki.connect.qq.com/准备工作_oauth2-0使用QQ登录的流程:新创建一个模型类用于记录用户与第三方登录ID的关联关系:创建模型的时候可以设置db_index=Tr...原创 2019-03-11 23:53:43 · 2146 阅读 · 0 评论 -
短信验证码celery异步实现
celery工作方式:使用celery第一件要做的最为重要的事情是需要先创建一个Celery实例,我们一般叫做celery应用,或者更简单直接叫做一个app。app应用是我们使用celery所有功能的入口,比如创建任务,管理任务等,在使用celery的时候,app必须能够被其他的模块导入。配置celery创建项目celery_tasks文件夹:在celery_tasks中创建一个man....原创 2019-03-10 15:20:06 · 279 阅读 · 0 评论 -
Django项目用户部分模块
用户模型类的创建首先:Django中的认证系统提供了的用户模型类和方法很方便,我们可以使用这个模型类,对于没有的字段就需要额外添加。Django提供了认证系统,可以同时处理认证和授权。Django的认证系统包含有:用户权限:用二元标志来指示一个用户是否可以做一个特定的任务。组:对多个用户运用标签和全新的一种通用的方式。一个可配置的密码哈希系统用户登录或内容显示的表单和视图一个可...原创 2019-03-09 19:34:28 · 390 阅读 · 0 评论 -
数据库三大范式与五大约束
范式:英文名称是 Normal Form,是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。但通常用到的只是前三种范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。第一范式(1NF):强调的是列的原子性,即列不能分割(已经是最精确的描述)。例:有这样...原创 2019-03-08 23:40:50 · 152 阅读 · 0 评论 -
Django基础知识
MVC模式:有一种程序设计模式叫MVC,其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。V全拼为View,用于封装结果,生成页面展示的html内容。C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。Djang...原创 2019-03-01 16:52:36 · 125 阅读 · 0 评论 -
python之单例模式
单例产生原因:类是每次实例化都会产生新的实例,有些情况只需要产生一个实例共用对象,所以就有了单例!单例的定义:确保一个类只有一个实例,且自行实例化并向整个系统提供这个实例。在python中有三种方式来实现单例模式:使用模块使用 _ _ new _ _ 方法使用装饰器使用元类 (metaclass)1. 使用模块其实,python中的模块就是天然的单例模式,因为在模块第一次导入时...原创 2019-03-01 10:22:49 · 73 阅读 · 0 评论 -
map()函数和reduce()函数
map()函数:也称映射对象函数,接受两个参数,第一个是函数,第二个是序列。map()将传入的函数依次作用到序列的每个元素并把结果作为list返回。map返回的结果是一个可迭代的map对象,可以使用 _ _ next _ _获取值,也可使用for循环迭代获取或者直接转换为list获取更加暴力。def demo(x): return x + 2cc = map(demo, [1, 3...原创 2019-02-28 19:45:44 · 1505 阅读 · 0 评论 -
sorted()函数
sorted()函数是python的内置函数,可以对数据进行排序处理,并返回一个list对象。对list类型进行排序:a = [3, 5, 6, 2, 1]s = sorted(a, key=abs)print(s)# 结果:[1, 2, 3, 5, 6]对元组进行排序:a = (3, 5, -6, 2, 1)s = sorted(a, key=abs) # 此处abs 指...原创 2019-02-28 15:00:56 · 2242 阅读 · 0 评论 -
python中可变与不可变类型
可变类型之陷阱:永远不要使用可变对象作为默认参数(因为它可变)def fo(a, b, c=[]): c.append(a) c.append(b) print(c)fo(1, 1)fo(1, 1)fo(1, 1)# 运行结果为:[1, 1][1, 1, 1, 1][1, 1, 1, 1, 1, 1]...原创 2019-02-19 13:08:24 · 112 阅读 · 0 评论 -
关于python中引用与深浅拷贝的问题
情况一:I = []for i in range(10): I.append({'num':i})print(I)结果:[{‘num’: 0}, {‘num’: 1}, {‘num’: 2}, {‘num’: 3}, {‘num’: 4}, {‘num’: 5}, {‘num’: 6}, {‘num’: 7}, {‘num’: 8}, {‘num’: 9}]情况二:I = [...原创 2019-02-15 20:31:46 · 136 阅读 · 0 评论 -
python中的zip函数
zip() 函数将成对的参数打包成一个个的元组,并返回的是由这些元组组成的对象。a = [1,1,2]b = [2,3,4,5]zipped = zip(a,b) # 此时zipped是一个对象result = list(zip(a,b)) # result = [(1,2),(1,3),(2,4)] # 使用list() 转换为列表...原创 2019-02-15 20:21:30 · 96 阅读 · 0 评论 -
python基础汇总
python基础一 、基础语法1.输入输出新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域...原创 2019-02-15 19:39:01 · 184 阅读 · 0 评论 -
python常用的库
scrapy:网页数据采集(爬虫)scrapy-redis:分布式爬虫selenium:web测试,仿真浏览器beautifulsoup:网页解释库,提供lxml的支持lxml:xml解释库numpy:基于矩阵的数学计算库scipy:科学计算库MySQL-python:mysql的读写接口库mysqlclient:mysql的读写接口库SQLAlchemy:数据库的ORM封装r...原创 2019-02-25 00:01:57 · 266 阅读 · 1 评论