python
文章平均质量分 66
小小小小人水豚
日拱一卒,不期而遇
展开
-
【Django+mdeditor】实现markdown编辑内容
一、目标:在django项目中,部分字段支持markdown格式进行编辑,预览、文件上传等功能。二、配置:1、官网链接:https://pandao.github.io/editor.md/,下载并解压到都django的静态目录下;2、引入css和js:<link rel="stylesheet" href="{% static 'plugins/editor_md/css/editormd.css' %}"><script src="{% static 'plugins/原创 2022-05-22 19:18:12 · 1289 阅读 · 0 评论 -
【Django】跨表查询要点
一、查询mysql中3种跨表查询方式:笛卡尔积、子查询、连接查询。Django也有与之对应的语法。二、基于对象的跨表查询 – (类似于子查询)1、正向查询和反向查询通过关系属性所在的model类去查询其关联表(类)的数据就是正向查询,反之为反向查询。正向查询靠属性,反向查询靠类名小写。2、一对一正向查询:获取吴老师的电话号码【对象.属性】author_obj = models.Author.objects.filter(name=‘吴老师’).first() # 得到的是model对象pri原创 2022-05-13 19:47:03 · 1193 阅读 · 0 评论 -
Django分页器(paginator)组件
最近使用到django自带的分页组件paginator,被各种nums搞得有点晕了,百度了一下,发现有篇文章写的还比较全面,于是拿来主义的思想就占据了大脑。当然,我们还是要尊重原创的。原文链接奉上:https://www.cnblogs.com/liu–huan/p/9992459.html在此只记录下基本的语法,基于django框架,从视图函数到模版文件的使用可以参考原文哈~from django.core.paginator import Paginatorbook_list = ['pytho转载 2021-11-10 17:15:16 · 1342 阅读 · 0 评论 -
【python】importlib模块
背景在django项目的开发中遇到了一种情况:得到了一个模块的字符串表示形式,如何将其导入并执行其中的方法或者函数呢?解决方法百度了之后发现了可以使用importlib模块,导入字符串类型的内置模块、文件,或者自定义的模块,相当于导入了该模块,之后就可以通过反射(getattr)调用模块内的属性或者方法。我们就以time模块为例进行说明吧。>>> import importlib>>> dir(importlib)['_RELOADING', '__all__原创 2021-10-10 19:39:16 · 329 阅读 · 0 评论 -
【算法】python使用4种方式实现2个数交换
题目定义两个整数a=1,b=3,交换两个数据,实现a=3,b=1方式一:借助第3个变量这种方式比较通用,换了任何一种语言都适用>>> a, b = 1, 3>>> c = a>>> a = b>>> b = c>>> a3>>> b1方式二:python特有的>>> a, b = 1, 3>>> a, b = b, a>>原创 2021-08-22 11:00:45 · 2453 阅读 · 0 评论 -
【python】生成图片验证码
背景在注册或者登陆场景下,经常会遇到需要输入图片验证码的情况,最经典的就是12306买火车票。图片验证码的破解还是有一定难度的,而且如果配合上时间和次数的验证,可以很大程度上防止模拟登陆或者暴力破解,保护用户信息,同时很大程度上减少对服务器的恶意请求。今天我们就用python的django框架+PIL实现简单的图片验证码。环境python:3.6.5django:3.1.6pillow:5.2.0【说明】:需要有django基础,比如路由、视图函数和启动命令等。代码check_code.py原创 2021-07-25 17:02:20 · 2113 阅读 · 1 评论 -
你知道python字符串如何原样输出占位符吗?
背景最近想根据传入的一些参数自动化生成测试脚本,过程中在字符串格式化输出的时候遇到了一些问题,在此分享下。问题描述我们知道python中有一些特殊的字符,比如以"\"开头的转义字符,\n,\t,\r等等,还有占位符,常用的%d,%s等等,我想要做的是代码中\n和%s这些,不需要转义,就是要原样输出到文件中。遇到的问题如下:以上代码中共有3个%s,第①个是打印的时候需要格式化输出的,第②个和第③个需要保持原样,写入到文件中,当文件执行的时候再进行格式化输出,print代码中根据原本的意愿只原创 2021-01-23 22:55:21 · 1617 阅读 · 0 评论 -
【python】difflib模块进行文本比较
背景RD部署时的配置文件需要保证前一个版本和后一个版本不一致,否则会产生丢数据的问题。鉴于此,每次提测后QA需要对2个版本的产出物进行对比。linux中有diff命令可以对两个文件进行比较,但是需要登录到linux开发机,比较麻烦。python中自带的difflib也可以实现类似的功能,而且比较的结果能保存为html格式的文件,使用起来更直观,而且可以根据自己的需要在不同的平台上使用。常用方法简介先用dir查看该模块中有哪些可以的类或者方法difflib模块最常用的2个类就是Dif...原创 2020-09-20 20:03:18 · 13947 阅读 · 1 评论 -
pymysql一次性执行多条语句之坑
记录一下今天使用pymysql遇到的一个小小的问题,其实说是坑,不如说是自己平时没有注意的一个细节,写下来,加深一下印象。问题描述为了提高效率,使用executemany一次性执行多条sql语句,将所有的数据库操作都封装到了类中,以下只把问题中用到的代码抽象如下: def update(self, data_list): """将列表中的数据更新到数据库中""" sql_str = "UPDATE score_new SET grade=%d"原创 2020-08-24 23:33:37 · 7569 阅读 · 0 评论 -
Python异常处理,3个好习惯分享给你
如果你用 Python 编程,那么你就无法避开异常,因为异常在这门语言里无处不在。打个比方,当你在脚本执行时按ctrl+c退出,解释器就会产生一个KeyboardInterrupt异常。而KeyError、ValueError、TypeError等更是日常编程里随处可见的老朋友。异常处理工作由“捕获”和“抛出”两部分组成。“捕获”指的是使用try...except包裹特定语句,妥当的完成错误流程处理。而恰当的使用raise主动“抛出”异常,更是优雅代码里必不可少的组成部分。在...转载 2020-06-17 14:15:22 · 464 阅读 · 0 评论 -
【算法题】反转单链表(python版)
现在算法是大厂面试的必考题,而且越来越难,已经不是简单的列表,字符串操作了,会涉及到各种数据结结构。单链表的反转也是经常考的一道题,里面故在此记录一下。1.链表的特点:顺序存储元素,但是元素在空间上是不连续的,所以在链表每个元素中除了存储元素的值,还会存储下一个元素的地址,单链表的话就只有指向下一个元素的指针,双向链表的话还会有指向前一个元素的指针。正是由于链表以上的存储特点,在做插入和删除操作时只需要断开指针的连接,不需要移动后面的数据,所以对链表修改的效率会很高,但是查找的效率会很低,这也正是链原创 2020-06-13 10:52:18 · 7348 阅读 · 1 评论 -
【算法题】归并排序(java版和python版)
今天记录一下归并排序,并且同时用java和python实现。归并排序分为二路归并和多路归并1.归并排序原理归并排序使用了二分法,归根到底的思想还是分而治之。拿到一个长数组,将其不停的分为左边和右边两份,然后以此递归分下去。然后再将它们按照两个有序数组合并起来。给出一张图:总体来说分为两个步骤:递归拆分:上图显示了归并排序的第一步,将数组按照中间位置middle进行递归拆分,最后分到最细(也就是只有1个元素),再使用对两个有序数组进行排序的方法对其进行排序; 合并有序数组:两个有序.原创 2020-06-02 22:14:11 · 323 阅读 · 0 评论 -
【算法题】堆排序(python版)
今天记录一下堆排序,它并不是真正的二叉树结构,而是用树的概念来实现链表的排序。前两部分关于树和对的概念参考链接:https://www.cnblogs.com/0zcl/p/6737944.html一、树的概念1.度:指的是一个节点拥有子节点的个数。如二叉树的节点的最大度为2。2.深度:数的层数,根节点为第一层,依次类推。3.叶子节点:度为0的节点,即没有子节点的节点。4.满二叉树:除了叶子结点外每一个结点都有左右叶子节点,且叶结点都处在最底层的二叉树5.完全二叉树:只有最下面的两层结点原创 2020-05-29 21:59:45 · 579 阅读 · 0 评论 -
对于python列表+= 和+操作的一些误解
目录现象原因源码+=的源码:+的源码:现象先上代码:方式一:>>> a = []>>> a += 'a'>>> a['a']方式二:>>> a = []>>> a = a + 'a'Traceback (most recent call last):...原创 2019-11-01 15:14:12 · 1119 阅读 · 0 评论 -
python3基础:正则(二)
目录编译正则表达式一般步骤re.compiepattern对象的属性及方法fags属性groups属性groupindex属性pattern.match()方法re.match()方法pattern.search()方法re.search()方法findal()方法pattern.findal()方法re.findal()方法patte...原创 2018-11-28 14:57:52 · 1678 阅读 · 1 评论 -
python子进程不支持input函数
问题写多进程程序的时候,在子进程调用的函数内部调用了input函数,提示EOFError: EOF when reading a line,具体如下错误:抽象出来的代码如下:#encoding=utf-8from multiprocessing import Pool,Processdef sub( ): data = input('-->') ...原创 2018-12-19 10:04:40 · 2031 阅读 · 1 评论 -
python3编程基础:pip常用命令总结
pip是Python官方推荐的包管理工具,属于python的一部分。pip可执行文件在python安装目录下:**\Scripts中。本文主要介绍pip一些常用的命令。说明:1.以下为python2和python3共存的情况下的命令,如果只有python3的话,直接用pip命令也是可以的;2.执行文件的时候不加-m,其它情况下都要加-m3.pip命令必须在非python环境下执行in...原创 2019-01-03 23:13:17 · 3095 阅读 · 0 评论 -
python3基础:操作mysql数据库
mysql登陆基本操作:登陆:mysql -uroot -h127.0.0.1 -P3306 -pmysql -uroot -p(本机不用写host)退出mysql:ctrl+z+回车,或者exit端口号默认是3306,但是可以通过安装目录下的配置文件修改。使用流程引用API模块获取与数据库的连接执行sql语句与存储过程关闭数据库连接安装pymysqlpython3 与...原创 2018-12-10 23:16:49 · 159049 阅读 · 42 评论 -
python3编程基础:多进程(四)subprocess模块
subprocess模块使用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。官方的解释:This module allows you to spawn processes, connect to their input/output/error pipes, and obtain their return codes.即允许你...原创 2018-12-26 17:16:30 · 6182 阅读 · 0 评论 -
python3编程基础:多进程(二)创建进程
在之前的文章中对多进程的一些基础概念,进程的生命周期和python进程操作的模块做了说明,本篇文章直接上代码,结束python中创建多进程的一些方法。os.fork()(Linux)fork()函数,只在Linux系统下存在。而且它非常特殊,普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后分别在父进程...原创 2018-12-20 17:11:49 · 9662 阅读 · 2 评论 -
python3基础:操作xml
XML 指的是可扩展标记语言(eXtensible Markup Language),和json类似也是用于存储和传输数据,还可以用作配置文件。类似于HTML超文本标记语言,但是HTML所有的标签都是预定义的,而xml的标签可以随便定义。XML元素指从开始标签到结束标签的部分(均包括开始和结束)一个元素可以包括:其它元素&lt;aa&gt; &lt;bb&gt;&lt;/bb&gt...原创 2018-12-07 11:54:39 · 64312 阅读 · 5 评论 -
python3基础:多进程(一)
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,进程是线程的容器。基本概念什么是进程?进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执...原创 2018-12-19 21:35:42 · 15133 阅读 · 0 评论 -
【python】基于PCSC协议实现读卡器和卡片通信
简介 PCSC协议是windows平台下的一套通用API,所 有 函 数 的 原 型 都 winscard.h中声明,应用程序需要包含winscard.lib,所有函数的正常返回值都 SCARD_S_SUCCESS。它为读卡器/卡片和电脑提供了一个标准接口,实现不同生产商的卡片和读卡器之间的互操作性。之前工作中使用的时候是在VC++环境下之间调用的winscard提供的api,学了py...原创 2018-12-03 18:22:18 · 9297 阅读 · 3 评论 -
python3编程基础:多进程(三)进程同步
之前介绍了进程的基本概念以及如何创建进程,本篇文章继续介绍如何在进程之间通信以及如何同步数据。进程同步之:Queue和JoinableQueuemultiprocessing.Queue类似于queue.Queue,一般用来多个进程间交互信息。Queue是进程和线程安全的。它实现了queue.Queue的大部分方法,但task_done()和join()没有实现。multiprocessin...原创 2018-12-25 11:09:14 · 7261 阅读 · 1 评论 -
python3编程基础:操作excel(一)
目录前言安装模块例1:创建一个excel 文件,并写入不同类的内容例2:写入时间例3:创建sheet例4 :操作单元格例5 :操作行/列/指定区域例6:显示小数例7:获取所有的行对象例8:获取所有的列对象例9:单元格类型例10:公式例11:合并单元格/取消合并单元格例12:插入图片前言python中操作excel的模块有很多,比如xl...原创 2019-01-02 23:30:16 · 52351 阅读 · 4 评论 -
python3编程基础:str()、repr()的区别
前言python中转换成字符有两种方法:str()和repr(),这两种又有什么区别?什么时候用str?什么时候用repr?str()函数:将值转化为适于人阅读的字符串的形式repr()函数:将值转化为供解释器读取的字符串形式代码示例下面我们用例子来说明两个函数是差异点,还有就是print输出字符串时需要注意的点将整型转换为字符串>>> a = 123 ...原创 2019-02-16 00:28:44 · 19875 阅读 · 2 评论 -
python3 踩坑之:*操作符生成二维列表
引言 python中“*”操作符是序列(列表,字符串和元组)的通用操作符,可以实现序列的复制,比如:>>> [1,2,3]*3 #复制列表[1, 2, 3, 1, 2, 3, 1, 2, 3]>>> ('hello',)*3 #复制元组('hello', 'hello', 'hello')>>> 'aa'*3 ...原创 2018-10-18 14:12:05 · 1011 阅读 · 0 评论 -
拷贝过来的pycharm工程执行时提示python.exe提示找不到
现象今天从别处拷贝来一个flask工程,本打算用pycharm执行,看一遍执行的效果,结果一点击run就提示以下问题:"C:\Users\Lenovo\AppData\Local\Programs\Python\Python37\python.exe"找不到排查过程本机电脑装的是python3.6版本,根本就没有提示的这个文件,查看了工程File-->Setting--&...原创 2019-09-03 16:13:12 · 10516 阅读 · 0 评论 -
pycharm默认的Nosetests运行模式之坑
目录现象原因解决方法今天用pycharm写代码遇到了一个奇葩的问题,现记录在此,以免再掉入此坑。现象简化后的代码如下:# -*- coding: utf-8 -*-#def test(): print("test....")if __name__ == "__main__": test()在pycharm中执行右键执行时没有run选项,而是...原创 2019-07-19 18:32:35 · 3752 阅读 · 0 评论 -
python实现简单的链表
链表是一个常用的数据结构,就是像链条一样,由一个节点接着一个节点连接下去。注意:链表在物理存储上是非连续的,所有一般不会基于位置遍历链表。链表可以方便的插入元素,但是查找是很耗时。用python实现的单向链表如下:#encoding=utf-8"""链表"""class Node(object): """节点类""" def __init__(self,valu...原创 2019-05-09 23:34:53 · 861 阅读 · 0 评论 -
python3:小练习
练习1:将ZCASH交易信息转换为字典存储这个是工作中的实战,需要验证SE返回的ZCASH交易信息,格式为'ADDRESS:'+地址,'AMOUNT:'+转账金额, 'FEES:'+交易费用,每个字段用换行符'\n'分割,用python实现如下将字符串response = '414444524553533A0A743151563439714D4A5755646932797875485779...原创 2019-04-23 22:54:20 · 3499 阅读 · 0 评论 -
爬取腾讯首页所有的图片并保存到本地
爬虫的知识点有点忘记了,做个小练习复习一个。题目'''抓取腾讯主页中的图片到本地1. 抓取网页2. 抓取图片地址3. 抓取图片内容并保存到本地'''代码import reimport requestsimport osfrom urllib.request import urlretrieve#访问腾讯首页response = requests.get('h...原创 2019-04-27 13:17:00 · 526 阅读 · 0 评论 -
python实现单例的几种方法
单例模式,顾名思义就是一个类只有一个实例,这样可以避免实例化多次浪费空间,而且避免同时操作一个对象时可能出现不同步的问题。其核心结构中只包含一个被称为单例类的特殊类,类的对象只能存在一个。面试题中经常被问题,先把常用的实现单例模式的方法总结如下:方法1:__new__将实例绑定到类变量_instance中,有的话直接返回,没有的话将类实例化并与_instance绑定缺点:当并发请求实例化...原创 2019-04-16 22:43:25 · 247 阅读 · 0 评论 -
python3:小练习
刷题网站上找的一些小题,还挺有意思的,记录一下练习一:抓了a,b,c,d四名犯罪嫌疑人,其中有一人是小偷,审讯中:a说我不是小偷;b说c是小偷;c说小偷肯定是d;d说c胡说!其中有三个人说的是实话,一个人说的是假话,请编程推断谁是小偷(用穷举法和逻辑表达式)。def thief_is(): for thief in ('a', 'b', 'c', 'd'):...原创 2019-04-15 22:10:41 · 2055 阅读 · 0 评论 -
python3基础:生成器
前言在python中,边循环边计算的机制就称为生成器(generator)。使用生成器当用到数据的时候在生成,这样可以节约空间,提高效率。生成器是一种特殊类型的迭代器,所以也会有__init__()和__next__()两个方法:__iter__方法负责返回一个迭代器(在迭代器中返回自己,在可迭代对象中返回帮助自己迭代的迭代器)_next__方法:当前要获取的元素没有越界,就返回当前元...原创 2019-03-05 22:11:00 · 2259 阅读 · 0 评论 -
python编程基础:超赞的递归解释
在用递归做练习题的时候出现函数中的return的值竟然是None,在网上找到了精彩的解释,过程图画的也很清楚,故在此分享一下,参考链接如下:https://www.cnblogs.com/cnhkzyy/p/9269141.htmlhttps://www.cnblogs.com/yechenkai/p/7143475.html问题版本代码:为什么return i 返回的是 i , 而p...原创 2019-02-16 00:38:31 · 441 阅读 · 0 评论 -
python3基础:操作json
json是java script object notation的缩写,用来存储和交换文本信息,比xml更小/更快/更易解析,易于读写,占用带宽小,网络传输速度快的特性,适用于数据量大,不要求保留原有类型的情况。json语法规则数据在名称/值对中数据用逗号分隔花括号保存对象方括号保存数组json名称/值对名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值,例:“...原创 2018-12-02 23:21:05 · 36522 阅读 · 0 评论 -
python3基础:正则(一)
简介正则是一个字符串规则,本身也是一个字符型,用来检查一个串是否含有字串。可以做精确匹配,模糊匹配,进行字符串替换,切割,尤其是在造数据,分析日志时用的非常多。python中处理正则表达式的模块是re模块,正则表达式由一些普通字符和一些元字符组成,普通字符包括大小写字母、数字和打印符号,而元字符是具有特殊含义的字符。正则表达式模式正则表达式大致的匹配过程是:拿正则表达式依次和字...原创 2018-11-26 22:51:39 · 852 阅读 · 0 评论 -
python3基础:正则(三)
match对象属性和方法在了解了正则常用表达式以及pattern对象属性和方法之后,继续总结match对象的方法属性以及分组相关的知识点。match对象是一次匹配后的结果,它包含了很多关于此次匹配的信息,可以使用Match提供的可读属性或方法来获取这些信息。match对象的属性和方法如下:string属性作用:获取匹配时使用的字符串对象代码示例:&gt;&gt;&gt; m=re.ma...原创 2018-11-28 23:26:50 · 964 阅读 · 0 评论 -
python3 踩坑之:异常机制处理文件关闭
前言异常处理机制可以使我们的程序在遇到错误或非预期的时候不会终止程序的运行,提升友好性。在文件操作,尤其是关闭文件时,文件打开的过程中可能出现了异常,这时可以使用异常处理机制来关闭文件句柄问题最本能的代码如下:try: fh = open("c:\a.py", "r")finally: print ("关闭文件") fh.close()但是运行之后会...原创 2018-10-21 23:39:05 · 2078 阅读 · 0 评论