
Python开发
凌_风
人生就是一场修行
展开
-
Python PEP8 基本常用规范
PEP8规范总结PEP8 是什么呢,简单说就是一种编码规范,是为了让代码“更好看”,更容易被阅读。 具体有这些规范,参考 PEP 8 –Style Guide for Python Code.当然也可以使用Pycharm检查或使用pylint.下面是规范总结缩进不要使用 tab 缩进使用任何编辑器写 Python,请把一个 tab 展开为 4 个空格绝对不要混用 tab 和空格,否则容易出现 IndentationError空格在 list, dict, tuple, set, 参数原创 2020-08-09 10:21:25 · 2827 阅读 · 1 评论 -
python关于uuid去除横杠和字符串转换为uuid添加横杠的处理
一、uuid去横杠的原因最近在使用jumpserver跳板机调用开发项目。jumpserver很多数据库主键是使用的uuid,去除横杠的uuid。找了下资料,原因如下:数据库中直接存储UUID的坏处:完全‘随机’的字符串,例如由MD5()、SHA1()、UUID()产生的。它们产生的每一个新值都会被任意地保存在很大的空间范围内,这会减慢INSERT及一些SELECT查询。1)它们会减慢...原创 2020-02-15 16:00:17 · 11170 阅读 · 1 评论 -
根据id和parent_id二维树形结构数据生成嵌套树形结构数据
一、原数据data = [ {'id': 1, 'parent_id': 0, 'name': "A"}, {'id': 2, 'parent_id': 0, 'name': "AA"}, {'id': 3, 'parent_id': 1, 'name': "AB"}, {'id': 4, 'parent_id': 3, 'name': "ABA"}, {'id': 5, 'paren...原创 2019-11-25 13:46:34 · 2535 阅读 · 0 评论 -
Flask 根据mysql数据库表反向生成 model的py文件
flask-sqlacodegen 支持flask的SQLAlchemy自动model代码生成器安装:pip install flask-sqlacodegen生成model.py文件flask-sqlacodegen --flask 'mysql+pymysql://root:password@127.0.0.1/test' --tables t1,t2# --tables t1...原创 2019-11-01 13:02:14 · 2794 阅读 · 1 评论 -
python(五)常用模块学习
目录模块介绍 模块的分类 常用内置模块 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式一、模块介绍1. 定义:模块:本质就是.py结尾的python文件(文件名:test.py原创 2016-08-29 23:20:54 · 4872 阅读 · 0 评论 -
Django 安装使用基础
大纲 安装Django 1、创建Django工程 2、创建Django app 3、写一个简单的登录注册相应页面 4、获取用户请求信息并处理 5、前后端交互 6、Django 请求 生命周期 跳转到这里 7、django内容整理安装Djangopip3 install djangowindows安装后,添加Django安装路径的环境变量。1、创建Django工程django-ad原创 2016-12-08 18:35:50 · 3817 阅读 · 2 评论 -
web框架本质
一、Web框架本质所有的web框架、web请求,本质上都是:socket。HTTP中,浏览器充当socket客户端,一次请求、一次响应,服务就断开了。import socketdef handle_request(client): buf = client.recv(1024) client.send(b"HTTP/1.1 200 OK\r\n\r\n") client.se原创 2016-12-08 00:27:52 · 3151 阅读 · 0 评论 -
python(十一)下:Redis安装配置及使用详解
目录redis-py 的API的使用可以分类为:连接方式连接池操作 String 操作Hash 操作List 操作Set 操作Sort Set 操作管道发布订阅两个程序通信,除了socket就是文件了,但是通过磁盘效率太低了,之前的RabbitMQ只是实现了消息的传递,现在要是实现数据的共享,可以通过缓存实现,一个中间商broker。 那其他程序也不能访问中间商的内存的,其他原创 2016-10-24 23:52:05 · 13103 阅读 · 1 评论 -
python(十二)上:mysql安装使用详细教程
上节回顾:RabbitMQ几种模式:平均分发perfetch =1durable队列持久化,deliver_mode = 2 消息持久化一对多广播,exchanage fanoutdirecttopicRPC一、数据库介绍1、什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所原创 2016-10-30 23:39:07 · 7477 阅读 · 0 评论 -
XSS过滤 与 单例模式
一、XSS过滤像在KindEditor里,富文本编辑框,写入类似“<script>alert(123)</script>”,编辑框会给过滤掉。但如果选择源码编辑,写入如上代码,就过滤不了了。实现了XSS攻击。1、解决办法:对特殊字符进行处理。pip3 install beatifulsoup4,这个模块会生成对象,find方法找指定的标签from bs4 import BeautifulSoupco原创 2017-03-03 10:55:27 · 1099 阅读 · 0 评论 -
python pip安装使用
pip和easy_install类似yum,安装Python包非常方便。###**1、pip下载安装**1.1 pip下载wget "https://pypi.python.org/packages/source/p/pip/pip-8.0.3.tar.gz原创 2016-02-26 18:14:46 · 2208 阅读 · 0 评论 -
Python在Linux | Windows中输出带颜色的文字的方法
Python程序,print输出的文本可以显示不同的颜色? 这个其实跟python无关,跟具体所用console的类型有关系,不同的类型对应不同的控制码,如果是ansi终端,可以用ansi的控制码。linux终端中的颜色是用转义序列控制的,转义序列以ESC开头,可以用\033完成相同的工作(ESC的ASCII码用十进制表示是27,用八进制表示33),其格式为:\033[显示方式;前景色;背景色m原创 2015-12-03 11:36:50 · 4153 阅读 · 1 评论 -
Python和go 将代码文件编译成二进制可执行文件
Python 将代码文件编译成二进制执行文件安装PyInstallerpip install PyInstaller编译# Linux 系统pyinstall -F 你的代码.py# Windows 系统pyinstaller.exe -F 你的代码.py编译后,在dist目录下会生成二进制可执行文件。Windows系统下,python代码文件编译成exe格式二进制...原创 2018-12-19 18:36:04 · 5298 阅读 · 0 评论 -
Pipenv,最好用的Python虚拟环境和依赖管理工具
一、什么是PipenvPipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt)。1、普通安装pipenv 可使用 pip 直接安装。pip install pipenv作者推荐在python3下边...原创 2018-12-21 18:35:57 · 1859 阅读 · 0 评论 -
详解python中的with关键字
对于系统资源如文件、数据库连接、socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(断开)该资源。如何正确的关闭一个文件呢?1.普通版def test0(): f = open("1.txt", "w") f.write("0000") f.close()2.进阶版def test1(): f = open("1.tx...转载 2019-08-20 11:46:50 · 1524 阅读 · 0 评论 -
python(十一)上:RabbitMQ 使用详细介绍
目录上节回顾 一、RabbitMQ 消息队列介绍 二、RabbitMQ基本示例. 1、Rabbitmq 安装 2、基本示例 3、RabbitMQ 消息分发轮询 三、RabbitMQ 消息持久化(durable、properties) 1、RabbitMQ 相关命令 2、消息持久化 四、RabbitMQ 广播模式(exchange) 1、fanout 纯广播原创 2016-10-20 15:03:55 · 32814 阅读 · 1 评论 -
python(十二)下:ORM框架SQLAlchemy使用学习
本节内容ORM介绍sqlalchemy安装sqlalchemy基本使用多外键关联多对多关系表结构设计作业 一、ORM介绍如果写程序用pymysql和程序交互,那是不是要写原生sql语句。如果进行复杂的查询,那sql语句就要进行一点一点拼接,而且不太有重用性,扩展不方便。而且写的sql语句可能不高效,导致程序运行也变慢。 为了避免把sql语句写死在代码里,有没有一种方法直接把原生s原创 2016-10-27 21:11:40 · 23143 阅读 · 1 评论 -
Python练习程序(一)用户认证后,联系人信息查询
练习:Python用户交互和流程控制。功能实现:用户认证后、查询联系人信息原创 2015-11-27 16:25:38 · 1213 阅读 · 0 评论 -
Python练习程序(二)文件处理和列表元组
Python文件处理和列表元组练习程序: - 让用户输入薪资 - 输出商品及商品价格 - 计算用户能否支付 - 输出剩余的钱,问用户是否继续购物,直到钱不够为止原创 2015-12-03 10:15:21 · 980 阅读 · 0 评论 -
Python练习程序(三)函数练习--ATM模拟
Python函数小练习-ATM模拟功能要求: - 额度15000 - 可以提现,手续费5% - 记录消费流水 - 支持每月账单查询 - 提供还款接口原创 2015-12-21 19:57:22 · 2535 阅读 · 0 评论 -
Python(三)集合、文件操作、字符编码和函数
目录集合操作 文件操作 字符编码与转码 函数一、集合操作集合是一个无序的,不重复的数据组合,它的主要作用如下:去重,把一个列表变成集合,就自动去重了关系测试,测试两组数据之前的交集、差集、并集等关系1、常用操作去重 list_1 = [1,1,2,3,4,5,6,6,7,7,8,8,9,9,3] set_1 = set(list_1) >>> set_1原创 2016-08-09 23:57:25 · 2085 阅读 · 1 评论 -
Python(二)字符串操作、列表字典及深浅拷贝等
目录模块初识 .pyc是什么? 数据类型初识 字符串操作 列表、元组操作 字典操作 深copy和浅copy一、模块初识Python的强大之处在于他有非常丰富和强大的标准库和第三方库。 一般标准库 在 Lib 目录 第三方库:在 site-packagessys模块(python解释器的sys模块,用c语音写的,Lib目录下没有sys.py)sys.path # py原创 2016-08-02 23:02:27 · 4230 阅读 · 1 评论 -
Python(一)介绍、安装、使用
目录Python 简介Python 安装第一个Python程序Python 解释器字符编码与解码动态语言与静态语言的区别变量及简单数据类型编码规范Python语言介绍Python语言,创始人Guido van Rossum(1956 – ?)2000年10月16号,PYTHON2.0发布,实现了完整的垃圾回收,并且支持UNICODE,同时整个开发过程更加透明,社区对PYTHON的开发进度的影响逐渐增转载 2016-07-29 10:11:22 · 5080 阅读 · 0 评论 -
python(四)下:python装饰器详解
装饰器一、介绍器:代表函数的意思。装饰器本质就是是函数功能:装饰其他函数,就是为其他函数添加附加功能 被装饰函数感受不到装饰器的存在原则: 不能修改被装饰的函数的源代码(比如线上环境)不能修改被装饰的函数的调用方式 实现装饰器知识储备: 函数即是“变量”高阶函数嵌套函数高阶函数+嵌套函数=>装饰器二、通过高阶函数+嵌套函数==>实现装饰器先分析以下两段代码能不能运行?d原创 2016-08-25 23:52:59 · 5766 阅读 · 4 评论 -
python(六)面向对象学习--类
内容类(class) 属性 实例变量(每个实例内存中) 类变量(类内存中) 私有属性 __var 方法 构造方法 析构函数(默认就有,代码为空,写了则相当于重构它)对象(object):类的实例(实例化一个类之后得到的对象) 封装: 把一些功能的实现细节不对外暴露 继承: (先覆盖、再继承、再添加) 代码复用原创 2016-09-06 14:31:14 · 2535 阅读 · 0 评论 -
python(八)socket网络编程
目录python(七)回顾 socket练习一、python(七)回顾1、面向对象静态方法 与类无关,不能访问类里的任何属性和方法,不用self 类方法 只能访问类变量 属性方法@property 把一个方法变成一个静态属性 flight.status @status.setter flight.status = 3 @status.delter 反原创 2016-10-07 23:19:19 · 4188 阅读 · 0 评论 -
python(七)下:初识socket网络编程
可以先熟悉下 OSI七层模型 对网络协议的封装,就叫socket一、Socketsocket通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过”套接字”向网络发出请求或者应答网络请求。 socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket原创 2016-09-16 17:25:23 · 2041 阅读 · 0 评论 -
python(四)上:列表生成式、生成器、迭代器和内置函数
目录列表生成式 生成器 迭代器一、列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):>>> list(range(1, 11))[1, 2, 3, 4, 5, 6, 7, 8, 9,原创 2016-08-19 17:35:02 · 3801 阅读 · 1 评论 -
python(十)线程与进程(中):进程、协程
一、上节回顾:线程 vs 进程1、线程:一组指令 内存共享同时修改同一份数据时必须加锁,metex 互斥锁递归锁join 等待线程结束 启动一个线程:def run(): print("")t= threading.Thread(target=run, args(n,))t.start()t.join# 等待所有结果,先把所有线程存起来守护线程:setDaemon(Tru原创 2016-10-11 18:03:37 · 4389 阅读 · 0 评论 -
python(十)下:事件驱动与 阻塞IO、非阻塞IO、IO多路复用、异步IO
上节的问题: 协程:遇到IO操作就切换。 但什么时候切回去呢?怎么确定IO操作完了?一、事件驱动模型介绍通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求第三种就是协程、时间驱动的方式原创 2016-10-12 02:34:16 · 12159 阅读 · 3 评论 -
python(九)线程与进程(上):线程
目录paramiko 模块 线程与进程之线程一、paramiko 模块1、堡垒机准备paramiko:基于ssh用于连接远程服务器并执行相关操作,批量管理安装yum -y install python-pip # linux环境,win安装完python自带pippip install paramiko1.1 SSHClient 基于用户名密码连接基于用户名密码连接 执行命令:impo原创 2016-10-10 01:09:13 · 6202 阅读 · 1 评论 -
python(七)上:面向对象进阶
目录面向对象高级语法部分 静态方法、类方法、属性方法 类的特殊方法 反射 异常处理一、类的高级方法1、静态方法(@staticmethod)通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法。普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实原创 2016-09-08 23:57:41 · 2045 阅读 · 1 评论 -
Python支持tab键补全
Python支持tab补全原创 2015-11-27 16:11:49 · 1442 阅读 · 0 评论