凡python
文章平均质量分 76
f_carey
信息安全的螺丝钉,欢迎同好们一起交流,分享,博客接受转发,与大家一同进步!
展开
-
Python Django: models.py 中的 auto_now 和 auto_now_add 的区别
Django models.py 中的 auto_now和auto_now_add的区别1. 验证环境:mysql 环境下1.1 配置数据库环境为 mysql 数据库环境1.2 app01/models.py 下创建新表对象1.3 app01/urls.py 下创建新路由1.4 app01/views.py 下创建新视图1. 验证环境:mysql 环境下1.1 配置数据库环境为 mysql 数据库环境1. 修改 setting.py 如下 DATABASES = { 'defa原创 2021-05-09 22:54:15 · 343 阅读 · 0 评论 -
Python Django: urlpatterns 变量的语法
urlpatterns 变量的语法1 包含其它的URLconfs1.1 项目目录结构如下注:记得在settings.py中配置新添加的应用;1.2 不同目录下的urls.py配置2 url别名反向解析1 包含其它的URLconfs在实际项目中,将所有应用的URL路径放置于一个 urls.py ,容易发生因为耦合程度高,造成后期自定义配置困难、维护成本高等问题。由此,Django 的 urls.py 配置文件可以 “include” 其它URLconf 模块,将一部分URL 放置于其它URL 下面。1.原创 2021-04-07 06:21:33 · 4769 阅读 · 3 评论 -
Python项目:基于 ORM 编写图书管理程序
Python 基于 ORM 编写图书管理程序1 结构关系2 创建项目2.1 配置 MySQL 数据库2.2 构建数据库表对象2.3 创建表2.4 创建 URLs2.5 创建图书展示界面2.6 创建模板文档2.6.1 配置引用 static 静态文件2.6.2 home.html2.6.3 addbook.html2.6.4 editbook.html展示所有图书信息、对图书可以进行增、删、改的操作。1 结构关系Author 表与 AuthorInfo 表为一对应关系。Publisher 表与原创 2021-03-19 08:55:52 · 104 阅读 · 0 评论 -
使用pymsql&SQLAchemy操作MySQL
使用pymsql&SQLAchemy操作MySQL1 pymsql1.1 下载安装1.2 使用操作1.2.1 执行SQL1.2.2 插入表内容1.2.3 fetch数据类型2 SQLAchemy2.1 安装2.2 基本使用2.2.1 Filter与Filter_by2.2.2 创建一个表2.2.3 增2.2.4 删2.2.5 改2.2.6 查2.2.7 回滚2.2.8 统计分组2.2.9 连表2.2.10 单外键关联2.2.11 多外键关联2.2.12多对多外键关系对于Python操作MySQL主原创 2020-11-10 05:16:34 · 420 阅读 · 0 评论 -
网络编程之:Redis缓存
Redis1 安装使用Redis2 Redis-py的API使用2.1 操作模式2.2 连接池2.3 操作2.4 发布订阅redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不原创 2020-11-09 07:10:24 · 85 阅读 · 0 评论 -
网络编程之:RabbitMQ队列
RabbitMQ1 安装使用RabbitMQ2 RabbitMQ实现模型3 远程连接RabbitMQ Server4 Message acknowledgments5 消息持久化6 消息公平分发7 简单生产消费实例8 RabbitMQ消息分发+消息持久化实例9 Publish\Subscribe(消息发布\订阅)9.1 有选择的接收消息(exchange_type='direct')9.2 topic消息过滤(exchange_type='topic')9.3 绑定消息过滤(exchange_type='f原创 2020-11-09 07:07:19 · 125 阅读 · 0 评论 -
网络编程之:事件驱动与异步IO
事件驱动与异步IO1 事件驱动模型2 同步IO和异步IO,阻塞IO和非阻塞IO2.1 基础概念2.2 I/O模式3 多路复用**select** / poll / epoll3.1 Select模拟多路复用Socket server3.2 selectors模块3.3 多发客户端服务器处理模型有以下几种:(1)每收到一个请求,创建一个新的进程,来处理该请求;由于创建新的进程的开销比较大,会导致服务器性能比较差,但实现比较简单。(2)每收到一个请求,创建一个新的线程,来处理该请求;由于涉及到线程的同步,原创 2020-11-08 10:40:34 · 717 阅读 · 0 评论 -
网络编程之:协程
协程1 Greenlet2 Gevent2.1 协程间自动切换2.2 同步与异步的性能区别2.3 实现单线程下的多socket并发协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此:协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻原创 2020-11-08 10:38:47 · 260 阅读 · 0 评论 -
网络编程之:线程thread与进程process
线程thread与进程process1 线程thread与进程process2 Python GIL(Global Interpreter Lock)3 线程3.1 Join & Daemon3.2 线程锁之Lock\Rlock\信号量3.2.1 线程锁(互斥锁/Mutex lock)3.2.2 RLock(递归锁)3.2.3 Semaphore信号量/线程池3.3 Timer时间/事件Event3.3.1 Timer时间3.3.2 事件Event3.4 队列Queue3.4.1 先进先出(FIFO原创 2020-11-07 06:20:26 · 356 阅读 · 0 评论 -
网络编程之:Socket套接字
Socket1.1 语法格式1.2 服务器端套接字1.3 客户端套接字1.4 公共用途的套接字函数1.5 SocketServer2 实例2.1 服务端与客户端接收数据2.2 优化1:2.3 优化2:2.4 优化2:2.5 模拟ssh客户端2.6 模拟ftp服务2.7 socketserverSocket又称"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求.socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,原创 2020-11-07 06:17:32 · 709 阅读 · 0 评论 -
语言基础之:异常处理
异常处理1 异常处理2 抛出异常:raise3 断言4 用户自定义异常5 定义清理行为1 异常处理try:<执行代码> except <异常名称[, 异常名称2]> [as 异常昵称]:<发生该异常时执行的代码>except (RuntimeError, TypeError, NameError) [as 异常昵称]:<发生该异常时执行的代码>else:<没有异常时执行的代码>finally:<不管有没有异常都会执行的代原创 2020-11-06 06:23:09 · 176 阅读 · 0 评论 -
语言基础之:目录结构
目录结构1 目的2 目录组织方式3 其他需要注意的地方:3.1 README3.2 setup.py3.3 requirements.txt3.4 配置的使用,1 目的**可读性高: **有助不熟悉这个项目的代码的人,快速的了解这个项目。**可维护性高: **即使代码/配置的规模增加,项目结构不会混乱,利于代码维护。2 目录组织方式Foo/|-- bin/| |-- foo||-- foo/| |-- tests/| | |-- __init__.py| |原创 2020-11-06 06:22:00 · 139 阅读 · 0 评论 -
语言基础之:“类”
类1 编程范式介绍1.1 面向过程编程(Procedural Programming)1.2 面向对象编程2 面向对象编程(Object-Oriented Programming )2.1 Class 类2.2 给属性指定默认值2.3 修改属性的值3 继承3.1 子类的方法__init__()3.2 给子类定义属性和方法3.3 重写父类的方法3.4 将实例用作属性4 经典类与新式类写法5 多态6 静态方法7 类方法8 属性方法9 类的特殊成员方法10 反射1 编程范式介绍编程是程序员用特定的语法+数据原创 2020-11-05 05:29:00 · 200 阅读 · 0 评论 -
语言基础之:内置函数
Python内置函数#!/usr/bin/env python# -*- coding:UTF-8 -*-# Author: Fan Carey# Version 1.0# Created time: # Description:内置函数# abs(x) 返回数字的绝对值。print(abs(-1))print(abs(-1.2345))print(abs(1+2j))# 输出:# 1# 1.2345# 2.23606797749979# all() 用于判断给定的可迭代参原创 2020-11-05 05:25:20 · 139 阅读 · 0 评论 -
语言基础之:迭代器 Iterator
迭代器 Iterator1 Iterable:2 Iterator3 小结4 迭代器函数(iter和next)迭代器是记住遍历的位置元素对象迭代器是指用iter(object)函数返回的对象(实例)迭代器是指用next(item)函数获取可迭代对象的数据1 Iterable:可以直接作用于for循环的对象统称为可迭代对象一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。可以使用i原创 2020-11-04 10:13:33 · 340 阅读 · 0 评论 -
语言基础之:生成器Generator
生成器Generator1 列表生成式2 生成器2.1 斐波拉契数列(Fibonacci)2.2 yield2.2.1 yield解析2.2.2 抓取生成器返回值2.2.3 通过yield实现在单线程的情况下实现并发运算的效果在 Python 中,使用了 yield 的函数被称为生成器(generator)。只有一个I.next()方法跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。只记录当前位置:在调用生成器运行的过程中,每次遇到原创 2020-11-04 10:11:34 · 566 阅读 · 0 评论 -
语言基础之:装饰器
11 装饰器11.1 定义11.1.1 原则11.1.2 高阶函数+嵌套函数+闭包==>装饰器11.2 参数与装饰器11.2.1 函数存在固定参数11.2.2 无参装饰器11.2.3 有参装饰器11.3 实例11.1 定义本质是函数,用于装饰其他函数,为其他函数添加附加功能。11.1.1 原则不能修改被装饰函数的源代码不能修改被装饰函数的调用方式11.1.2 高阶函数+嵌套函数+闭包==>装饰器函数即"变量"高阶函数把一个函数名当作实参传给另外一个函数(在不修改被装饰函数原创 2020-06-13 10:39:38 · 124 阅读 · 0 评论 -
语言基础之:函数
函数10.1 函数的定义规则10.2 返回值return10.3 函数之间调用10.4 形参与实参10.4.1 含参数的函数10.4.2 *args10.4.3 **kwargs10.4.4 多种实参,多种参数组10.5 局部变量与全局变量10.6 递归10.7 函数、函数式编程、高阶函数10.7.1 函数和过程10.7.2 函数式编程10.7.3 高阶函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。具有减少重复代码,使程序变的可扩展,易维护等特点10.1 函数的定义规则d原创 2020-06-13 10:35:18 · 463 阅读 · 0 评论 -
语言基础之:文件操作
文件操作9.1 创建格式9.2 常用功能9.2.1 读文件9.2.2 "w"写文件9.2.3 遍历与打印插入9.2.4 f.truncate()函数9.2.5 f.flush()9.2.6 修改文件内容9.2.7 其他9.3 with 语句9.4 编码转换9.1 创建格式open() 将会返回一个 file 对象,基本语法格式如下:open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=T原创 2020-06-06 13:49:49 · 268 阅读 · 0 评论 -
7.6 数据结构之字典
7.6 数据结构之字典7.6.1 创建格式:7.6.2 常用功能7.6.3 字典的常用方法7.6.4 字典遍历7.6.4.1 直接遍历,值为Key7.6.4.2 通过key遍历7.6.4.3 value遍历7.6.4.4 枚举遍历7.6.4.5 item遍历:7.6.4.6 字典迭代器7.6.5 其他知识用于存放具有映射关系的数据。字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合,程序需要通过Key来访问Value,因此在同一个字典中,键(key)必须是唯一的。原创 2020-05-16 22:29:39 · 316 阅读 · 0 评论 -
7.5 数据结构之集合
7.5 集合7.5.1 创建格式:7.5.2 常用功能7.5.3 集合的常用方法集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。7.5.1 创建格式:parame = {value1,value2,…}或者set(value)7.5.2 常用功能# 空set原创 2020-05-16 21:59:20 · 389 阅读 · 0 评论 -
7.4 数据类型之元组
7.4 元组7.4.1 创建格式:7.4.2 常用功能7.4.4 集合的常用方法元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。string、list 和 tuple 都属于 sequence(序列)。7.4.1 创建格式:tuple1 = (Value01, Value02, …)7.4.2 常用功能# 空元组empty_tuple = () empt原创 2020-05-16 21:55:01 · 127 阅读 · 0 评论 -
5. 条件控制与循环语句
5. 条件控制与循环语句5.1 条件控制:if5.1.1 猜年龄:if条件5.2 for循环5.3 while循环5.3.1 while else循环5.4 条件控制与循环语句中常用功能5.4.1 range()函数5.4.2 continue5.4.3 break5.4.4 pass5.1 条件控制:ifif条件下常用的操作运算符<: 小于<=: 小于或等于>: 大于>=: 大于或等于==: 等于,比较两个值是否相等!=: 不等于5.1.1 猜年龄:if条件原创 2020-05-13 23:10:43 · 133 阅读 · 0 评论 -
4.用户输入与输出
4.用户输入与输出4.1 读取键盘输入:4.2 Python3 与Python2中用户输入4.3 格式化输出4.3.1 默认4.3.2 "+string+"4.3.3 "%s/d/f"4.3.4 "'_string'.format(_string=string)"4.3.5 "{num}.format(str1,str2)"4.4 多种数据类型输出4.4.1 输入与输出类型不一致报错4.4.2 将整型改成字符串4.5 练习4.5.1 模拟用户登陆4.5.2 猜年龄直到猜出正确的退出4.1 读取键盘输入:原创 2020-05-11 11:50:19 · 673 阅读 · 0 评论 -
python基础之:字符编码
3.字符编码3.1 中文编码3.2 Unicode3.3 编码转换3.1 中文编码GB2312(1980年)一共收录了7445个字符GBK1.0(1995年)汉字扩展规范收录了21886个符号GB18030(2000年)收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方原创 2020-05-11 11:45:53 · 303 阅读 · 0 评论 -
7.2 数据类型之字符串
7.2 字符串String7.2.1 创建格式:7.2.2 常用功能7.2.2.1 字符串运算7.2.2.2 字符串截取7.2.2.3 其他功能7.3 字符串的常用方法Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。Python中的字符串不能改变。Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。7.2.1 创建格式:string1...原创 2020-05-08 08:58:08 · 188 阅读 · 0 评论 -
7.3 数据类型之列表
7.3 List(列表)7.3.1 创建格式:7.3.2 常用功能7.3.4 列表的常用方法7.3.5 列表遍历列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。7.3.1 创建格式:list1 = [value1,value2,…]7.3.2 常用功能# 空列表empty_list1 =原创 2020-05-10 10:16:09 · 331 阅读 · 0 评论 -
7.2 小注: str函数isdigit、isdecimal、isnumeric的区别修正
str函数isdigit、isdecimal、isnumeric的区别isdigit()isnumeric()isdecimal()示例:参考于:isdigit()True: Unicode数字,全角数字(双字节),byte数字(单字节)False: 汉字数字,罗马数字Error: 无经测试,在Python2.7.18与python3.8.2中罗马数字.isdigit()为False;上处为学习时所发现的错误;isnumeric()True: Unicode数字,全角数字(双字节),罗马数字原创 2020-05-10 10:01:49 · 223 阅读 · 0 评论