第一篇:PEP8规范
一 PEP8规范是什么? ​ PEP是Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。 ​ 每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP 8)是针对Python语言编订的代码风格指南。 ​ 尽管我们可以在保证语法没有问题的前提下随…
第二篇:GIL新解
一:cpu和GIL必须都具备才可以执行代码; ​ 拿到cpu权限-》拿到GIL解释器锁-》执行代码 ​ 在python3.2之后GIL有了新的实现,目的是为了解决that GIL thrashing问题,这是Antoine Pitrou的功劳 二:GIL解释器锁会在两种情况下释放 2.1、主动释放:自己主动交出来 遇到IO操作或者分配的cpu时间片…
第三篇:Python是解释型的强类型动态语言
概括地说,编程语言的划分方式有以下三种 一、 编译型or解释型 #1.1 编译型 略 #1.2 解释型(python属于解释型) 略 二、强类型or弱类型 #2.1 强类型语言(python属于强类型) 数据类型不可以被忽略的语言 即变量的数据类型一旦被定义,那就不会再改变,除非进行强转。 在python中,例如:name = 'egon…
第四篇:Python格式化字符串的4中方式
Python格式化字符串的4中方式 一:%号 ​ %号格式化字符串的方式从Python诞生之初就已经存在,时至今日,python官方也并未弃用%号,但也并不推荐这种格式化方式。 # 1、格式的字符串(即%s)与被格式化的字符串(即传入的值)必须按照位置一一对应 # ps:当需格式化的字符串过多时,位置极容易搞混 print('%s ask…
第五篇:性能测试之timeit
一、timeit模块的使用 timeit模块下主要有两个函数十分有用,分别为timeit.timeit、timeit.repeat 1.1 timeit.timeit的使用 ​ timeit.timeit参数: # stmt 指定要执行的语句/statement,值可以是字符串形式的表达式,也可以是一个函数,或者是一个变量的形式。 # number…
thumbnail
第六篇:轻松搞定位运算
一 前言 ​ 位运算,一个极容易被低端码农忽视的地带,因为它略微需要用一丢丢智商,真的只有那么一丢丢,但高手与low手的差距往往就是长这么一丢丢,能达到的深度就截然不同了,今天egon就来给大家聊一聊位运算那些风骚且高级的操作,但要理解位运算,得从机器数与真值说起,请看大屏幕 二 真值、机器数(原码、反码、补码) ​ “真值”指的就是数本身,例如-…
第七篇:collections之OrderedDict
collections之OrderedDict ​ 如果想让字典有序,可以使用collections.OrderedDict,它现在在C中实现,这使其快4到100倍。 1、collections.OrderedDict的基本使用 ​ 将类OrderedDict实例化会得到一个dict子类的实例,支持通常的dict方法。 from collectio…
第九篇:Type hinting
类型提示 Type hinting(最低Python版本为3.5) python3新增类型提示功能,例如我们可以为函数增加类型提示信息,而不影响函数本身的执行: 注释的一般规则是参数名后跟一个冒号(:),然后再跟一个expression,这个expression可以是任何形式。 def func(a: 'spam', b: (1…
thumbnail
初识数据库
初识数据库 一、数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。 很不幸,这些假设都是你自己想象出来的,上述假设存在以下几个问题 1、程序所有的组件就…
thumbnail
库相关操作
库相关操作 一、系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等 performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象 mysql: 授权库,主要…
thumbnail
表相关操作
表相关操作 一、存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 1、什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png等 数据库中的表…
thumbnail
记录相关操作
记录相关操作 一、介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SEL…
thumbnail
数据库IDE与pymysql模块
数据库IDE与pymysql模块 一、IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 在此我们推荐使用Navicat软件或pycharm来连接数据库,这样就能更详细直观地查询数据 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查…
thumbnail
视图,触发器与存储过程
视图,触发器与存储过程 一、视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率…
thumbnail
流程控制
流程控制 一、条件语句 if条件语句 delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = 1 THEN SELECT 1; ELSEIF i = 2 THEN SELECT 2; ELSE SELECT 7; END IF; END // de…
thumbnail
索引
索引 一、索引概述 数据库索引是一个数据结构,其改善了数据检索操作的速度数据库表以额外写入和存储空间的费用来维持索引数据结构。索引用于快速定位数据,而不必每次访问数据库表时都在数据库表中搜索每一行。可以使用数据库表的一列或多列来创建索引,这为快速随机查找和有效访问有序记录提供了基础。 1、什么是索引 我们为数据建立索引,在一定程度上和为书籍建立目录…
thumbnail
事务
事务 一、什么是事务? 事务是MySQL的一种机制,每开启一个事务,都可以往里放入一系列的SQL语句。 事务是单个逻辑工作单位执行的一系列操作,要么全执行,要么全不执行,每开一个事务,相当于给数据库拍了一张快照,这意味着在提交之前可以回滚,在事务中可以设置多个保存点,然后可以进行回滚到每个保存点 我们默认为每条sql开启事务,并且会在本条sql执行…
thumbnail
读现象与事务隔离机制
读现象与事务隔离机制 一、数据库读现象 读现象在本质上来说,是数据库在高并发场景下,多个同时执行的事务带来的影响。 数据库主要有三大常见的读现象: *脏读*:事务1和事务2并发执行,事务1改了数据,事务2读取了以后,但事务1进行了回滚,导致事务2读取的数据有误。 *不可重复读*:事务1读取了数据,事务2修改了数据并且提交了,接着事务1再次读取,发现…
thumbnail
锁机制
锁机制 一、什么是锁机制,为什么要用锁机制 我们可以通过一个很简单的比喻来理解事务的锁机制。比如同一个办公室的同事们,都想使用打印机打印文件,如果不加以控制,可能出现两个人同时打印不同的内容在一个文件里,就会引起内容混乱。于是,我们就引入了锁的概念,当有并发的多个事务同时操作同一份数据时,只有“抢到”了锁的事务,才能真正去操作数据,使得数据的安全性…
thumbnail
Web框架与Django简介
Web框架与Django简介 一、Web应用的组成 我们接下来学习的目的就是为了开发一个Web应用软件。那到底什么是Web应用软件呢? 对于传统的应用软件来说,基本上都是部署于单机使用的,而Web应用软件则不一样,Web应用软件是基于B/S架构的,B与S部署于不同的计算机上,并且基于网络通信,所以B与S的本质都是套接字,其中B指的是浏览器&…
thumbnail
路由层
路由层 一、路由的作用 路由即请求地址与视图函数的映射关系,如果把网站比喻为一本书,那路由就好比是这本书的目录,在Django中路由默认配置在urls.py中,如下图: 二、简单的路由配置 # urls.py from django.urls import re_path # 由一条条映射关系组成的urlpatterns这个列表称之为路由表 url…
thumbnail
视图层
视图层 一、请求与响应 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象即可:请求对象(HttpRequest)和响应对象(HttpResponse) 官网地址:https://docs.djangoproject.com/…
thumbnail
模板层
模板层 一、模板简介 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图进行处理,而视图在经过一系列处理后必须要有返回信息给浏览器。如果我们要返回html标签、css等数据给浏览器进行渲染,我们可以在视图中这么做 from django.shortcuts import HttpResponse import time # 返回静态内…
thumbnail
ORM
ORM 一、Django模型层之ORM介绍 ORM是什么?为何要有ORM? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle、Microsoft SQL Server等。 如果应用程序需要操作数据(比如将用户注册信息…
thumbnail
模型层表操作之Fields字段
模型层表操作之Fields字段 一、字段名命名限制 Fields字段被指定为模型类的类属性,是模型最重要的部分,也是模型唯一必须要有的部分,是用来定义数据库字段的。 Django 对字段的命名设置了一些限制: 1、注意字段名不要选择与模型API冲突的名字,如clean、save或delete等 2、字段名不能是Python保留字,因为这将导致Pyt…
thumbnail
建立表关系
建立表关系 显然,关系型数据库的强大之处就在于将表相互关联,Django提供了定义三种最常见的数据库关系类型的方法:多对一、多对多和一对一。 一、表关系之多对一 1、多对一关系 要定义一个多对一关系,需要使用django.db.models.ForeignKey。您可以像使用任何其他字段类型一样去使用它:将其作为模型的类属性 # ForeignKe…
thumbnail
Meta选项
Meta选项 在模型类内部定义Meta类(可选的,所有选项都不是必须的),可以配置模型的元数据, 例如: 1、如排序选项(ordering) 2、数据库表名(db_table) 3、人类可读的单复数名称(verbose_name 和verbose_name_plural)。 from django.db import models class Pe…
thumbnail
QuerySet对象与查询优化
QuerySet对象与查询优化 一、QuerySet对象 Django的ORM中存在查询集的概念。 查询集,也称查询结果集,即QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(与列表类似,但不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返…

You cannot copy content of this page