02 2018 档案
摘要:一、分页 试问如果当数据量特别大的时候,你是怎么解决分页的? 方式a、记录当前访问页数的数据id 方式b、最多显示120页等 方式c、只显示上一页,下一页,不让选择页码,对页码进行加密 1、基于limit offset 做分页 from rest_framework.pagination impor
阅读全文
摘要:一、版本 程序也来越大时,可能通过版本不同做不同的处理 没用rest_framework之前,我们可以通过以下这样的方式去获取。 class UserView(APIView): def get(self,request,*args,**kwargs): version = request.quer
阅读全文
摘要:一、认证 认证请求头 views.py #!/usr/bin/env python # -*- coding:utf-8 -*- from rest_framework.views import APIView from rest_framework.response import Response
阅读全文
摘要:一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的
阅读全文
摘要:一、请求到来之后,都要先执行dispatch方法,dispatch方法方法根据请求方式的不同触发get/post/put/delete等方法 注意,APIView中的dispatch方法有很多的功能 def dispatch(self, request, *args, **kwargs): """
阅读全文
摘要:一、SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ex
阅读全文
摘要:一、wtforms源码流程 1、实例化流程分析 # 源码流程 1. 执行type的 __call__ 方法,读取字段到静态字段 cls._unbound_fields 中; meta类读取到cls._wtforms_meta中 2. 执行构造方法 a. 循环cls._unbound_fields中的
阅读全文
摘要:Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开; Flask Script和Flask本身的工作方式类似,只需定义和添加从命
阅读全文
摘要:简介 flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis:保存数据的一种工具,五大类型。非关系型数据库 memcached filesystem mongodb s
阅读全文
摘要:一、简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。 安装: pip3 install wtforms 二、简单使用wtforms组件 1、用户登录 具体代码: from flask import Flask,render_
阅读全文
摘要:一、实例化补充 instance_path和instance_relative_config是配合来用的、这两个参数是用来找配置文件的,当用app.config.from_pyfile('settings.py')这种方式导入配置文件的时候会用到 from flask import Flask,re
阅读全文
摘要:一、flask实现的分页组件 from urllib.parse import urlencode,quote,unquote class Pagination(object): """ 自定义分页 """ def __init__(self,current_page,total_count,bas
阅读全文
摘要:from flask import Flask,render_template,request,redirect,session app = Flask(__name__,template_folder='templates') app.secret_key = "sdsfdsgdfgdfgfh"
阅读全文
摘要:小知识: 1、子类继承父类的三种方式 class Dog(Animal): #子类 派生类 def __init__(self,name,breed, life_value,aggr): # Animal.__init__(self,name,breed, life_value,aggr)#让子类执
阅读全文
摘要:知识点回顾 1、flask依赖wsgi,实现wsgi的模块:wsgiref,werkzeug,uwsgi 2、实例化Flask对象,里面是有参数的 app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx')
阅读全文
摘要:一、Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于F
阅读全文
摘要:一、admin的源码流程 首先可以确定的是:路由关系一定对应一个视图函数 a、当点击运行的时候,会先找到每一个app中的admin.py文件,并执行 b、执行urls.py admin.site是什么? admin.site,urls 返回的是一个元组,里面的第一个元素是一个列表 django-ad
阅读全文
摘要:一、面向对象复习 1、类的继承 class Base(object): def __init__(self,val): self.val = val def func(self): self.test() print(self.val) def test(self): print("Base.tes
阅读全文
摘要:一、假设有三张表 Room id 1 2 .. 1000 User: id 1 .. 10000 Booking: user_id room_id time_id date 1 1 8:00 2017-11-11 1 2 8:00 2017-11-11 1 3 8:00 2017-11-11 1 4
阅读全文
摘要:一、ModelForm的介绍 ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信息 help_texts=None, # 帮助提示信息 widgets
阅读全文
摘要:一、中介模型:多对多添加的时候用到中介模型 自己创建的第三张表就属于是中介模型 class Article(models.Model): ''' 文章表 ''' title = models.CharField(max_length=64,verbose_name="文章标题") summary =
阅读全文
摘要:一、为什么会有跨域问题? 是因为浏览器的同源策略是对ajax请求进行阻拦了,但是不是所有的请求都给做跨域,像是一般的href属性,a标签什么的都不拦截。 二、解决跨域问题的两种方式 JSONP CORS 三、JSONP 先简单来说一下JSONP,具体详细详见上面JSONP JSONP是json用来跨
阅读全文
摘要:一、回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascript技术向服务器发送异步请求; AJAX无须刷新整个页面; 因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高; jquery 实现的ajax index.html <!DOCTY
阅读全文
摘要:一、注册相关的知识点 1、Form组件 我们一般写Form的时候都是把它写在views视图里面,那么他和我们的视图函数也不影响,我们可以吧它单另拿出来,在应用下面建一个forms.py的文件来存放 2、局部钩子函数 def clean_username(self): username = self.
阅读全文
摘要:一、需要知道的新知识点 1、刷新验证码。给src属性加一个?号。加个?会重新去请求 //#给验证码刷新 $(".vialdCode_img").click(function () { 方式一:dom方法#} $(this)[0].src+="?"#} 方式二:jQuery的attr方法#} $(th
阅读全文
摘要:一、Ajax准备知识:json 说起json,我们大家都了解,就是python中的json模块,那么json模块具体是什么呢?那我们现在详细的来说明一下 1、json(Javascript Obiect Notation,JS对象标记)是一种轻量级的数据交换格式。 它基于 ECMAScript (w
阅读全文
摘要:extra extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None) 有些情况下,Django的查询语法难以简单的表达复杂的 WHERE 子句,对于这种情况, Django
阅读全文
摘要:由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到
阅读全文
摘要:一、Form类 创建Form类时,主要涉及到 【字段】 和 【插件】,字段用于对用户请求数据的验证,插件用于自动生成HTML; 1、Django内置字段如下: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标
阅读全文
摘要:一、定义的规则 class TeacherForm(Form): #必须继承Form # 创建字段,本质上是正则表达式 username = fields.CharField( required=True, #必填字段 error_messages={"required":"用户名不能为空!!"},
阅读全文
摘要:一、model常用操作 1、13个API查询:all,filter,get ,values,values_list,distinct,order_by ,reverse , exclude(排除),count,first,last,esits(判断是否存在) 需要掌握的all、values、valu
阅读全文
摘要:一、Form基本使用 类 字段 is_valid() cleaned_data errors 字段参数: max_length min_length validators = [RegexValidators("xxx")] 钩子函数 clean_字段名 注意: 必须有返回值 只能拿自己当前字段值
阅读全文
摘要:一、分页的实现与使用 class Pagination(object): """ 自定义分页 """ def __init__(self,current_page,total_count,base_url,params,per_page_count=10,max_pager_count=11): t
阅读全文
摘要:Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse # Create your views here. from app01.models import * from django.core.p
阅读全文
摘要:一、auth模块 from django.contrib import auth 1 、authenticate() :验证用户输入的用户名和密码是否相同 提供了用户认证,即验证用户名以及密码是否正确,一般需要username password两个关键字参数 如果认证信息有效,会返回一个 User
阅读全文
摘要:models.Book.objects.filter(**kwargs): querySet [obj1,obj2]models.Book.objects.filter(**kwargs).values(*args) : querySet [{},{},{}]models.Book.objects.
阅读全文
摘要:一、多对多的正反向查询 class Class(models.Model): name = models.CharField(max_length=32,verbose_name="班级名") course = models.CharField(verbose_name="课程",max_lengt
阅读全文
摘要:一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many); 一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系(one-to-many)。 创建一对一的关系:OneToOne("要绑
阅读全文
摘要:一、添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",course="python",birth="2000-9-9",fenshu=80) Frank_obj.save() #
阅读全文
摘要:一、ORM介绍 映射关系: 表名 》类名 字段 》属性 表记录 》类实例化对象 ORM的两大功能: 操作表: - 创建表 - 修改表 - 删除表 操作数据行: - 增删改查 ORM利用pymysql第三方工具链接数据库 Django没办法帮我们创建数据库,只能我们创建完之后告诉它,让django去链
阅读全文
摘要:一、什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板。 二、模板语法分类 一、模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键是句点字符 .(也就是点) views.py def index(request): name =
阅读全文
摘要:一、知识点回顾 1、MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中)。 views:视图函数 另加urls:url路径与视图函数的映射关系,,可以不是一一对应的。 2、相关的一些命令 创建一个Django项
阅读全文
摘要:一个小问题: 什么是根目录:就是没有路径,只有域名、。url(r'^$') 补充一张关于wsgiref模块的图片 一、MTV模型 Django的MTV分别代表: Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM) Template(模板):放所有的html文件 模板语法:目的是
阅读全文
摘要:一、cookie和session的介绍 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生。 cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上co
阅读全文
摘要:http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件,
阅读全文
摘要:当你在浏览器地址栏敲入“http://www.cnblogs.com/”,然后猛按回车,呈现在你面前的,将是博客园的首页了(这真是废话,你会认为这是理所当然的)。作为一个开发者,尤其是web开发人员,我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理
阅读全文
摘要:一、首先说一下自执行函数 1. 立即执行函数是什么?也就是匿名函数 立即执行函数就是 声明一个匿名函数 马上调用这个匿名函数 2、popup的举例 点击,弹出一个新的窗口。保存完事,页面不刷新数据就返回了。(点击admin的+,弹出的框就是用popup来做的) 具体操作步骤: 1、urls.py u
阅读全文
摘要:一、一个小知识点 1、截取长屏的操作 2、设置默认格式 3、md,sm, xs 4、空格和没有空格的选择器 二、响应式介绍 - 响应式布局是什么? 同一个网页在不同的终端上呈现不同的布局等- 响应式怎么实现的? 1. CSS3 media query 媒体查询 2. JS去控制网页的布局和样式等 -
阅读全文
摘要:一、jQuery事件 常用事件 blur([[data],fn]) 失去焦点 focus([[data],fn]) 获取焦点( 搜索框例子) change([[data],fn]) 当select下拉框中的元素发生改变的时候触发change事件(select例子) click([[data],fn]
阅读全文
摘要:一、相关知识点总结1、CSS .css() - .css("color") -> 获取color css值 - .css("color", "#ff0000") -> 设置值 - .css({"color": "#cccccc", "border": "1px solid #ff0000"}) ->
阅读全文
摘要:知识点总结 1、属性 属性(如果你的选择器选出了多个对象,那么默认只会返回出第一个属性)、 attr(属性名|属性值) - 一个参数是获取属性的值,两个参数是设置属性值 - 点击加载图片示例 removeAttr(属性名) -删除属性的值 prop(属性名|属性值) - 属性的返回值的是布尔类型 -
阅读全文
摘要:一、jQuery基础1.为什么要用jquery? 写起来简单,省事,开发效率高,兼容性好2、什么是jQuery? jQuery是一个兼容多浏览器的JavaScript库(类似python里面的模块)3、如何使用jQuery? 1、导入 <script src="jquery-3.2.1.js"></
阅读全文
摘要:一、JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for (var i in li ){} 现在我们来说一下测试一下第二种(数组和obj的) //测试for循环 <!DOCTYPE html>
阅读全文
摘要:一、节点操作 创建节点:var ele_a = document.createElement('a');添加节点:ele_parent.appendChild(ele_img);删除节点:ele_parent.removeChild(ele_p);替换节点:ele_parent.replaceChi
阅读全文
摘要:一、什么是HTML DOM HTML Document Object Model(文档对象模型) HTML DOM 定义了访问和操作HTML文档的标准方法 HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树) 二、DOM树 画dom树是为了展示文档中各个对象之间的关系,用
阅读全文
摘要:在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String、Math、Array、Date、RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的 <script la
阅读全文
摘要:一、JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Na
阅读全文
摘要:css常用的一些属性: 1.去掉下划线 :text-decoration:none ;2.加上下划线: text-decoration: underline; 3.调整文本和图片的位置(也就是设置元素的垂直对齐方式):vertical-align:-20px; 没设置之前: 设置之后: 3.外边距:
阅读全文
摘要:一、文本属性 1.text-align:cnter 文本居中2.line heigth 垂直居中 :行高,和高度对应3.设置图片与文本的距离:vertical-align4.text-decoration:none 去掉超链接下划线5.要是给a标签修改颜色的时候,就定到a标签上,用继承有时候是搞不定
阅读全文
摘要:一、css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。 例如 二、css的四种引入方式 1.行内式 行内式是在标记的style属性中设定CSS样式。这种方式没有体现出C
阅读全文
摘要:一、表单 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段、复选框、单选框、提交按钮等等。 表单还可以包含textarea、select、fieldset和 label标签。 表单属性 action: 表单提交到哪.一般指向服务器端一个程
阅读全文
摘要:一、初始html 1.web服务本质 import socket sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bind(("127.0.0.1",8800)) sock.listen(5) while 1: print("wa
阅读全文
摘要:一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip install sqlalchemy -i http://pypi.dou
阅读全文
摘要:一、简介 MongoDB是一款强大、灵活、且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存
阅读全文
摘要:目录: 1、自动分配(redis) - 批量导入 2、微信自动绑定 3、django的ORM做不了的操作,怎么自定义操作数据库 extra ’ 4、报表 公司每个月销售的业绩 5、权限 1、自动分配、你在什么时候用到了自动分配? 答:市场部或运营部招来的新的客户,单条(批量)录入数据的时候,进行自动
阅读全文
摘要:一、安装的两种方法 第一种 #安装 pip3 install pymysql 第二种 二、链接,执行sql,关闭(游标) import pymysql user= input('用户名:>>').strip() pwd= input('密码:>>').strip() #先链接,拿到游标 conn=p
阅读全文
摘要:一、IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具navicat 二、MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境( 如数据文件、控制文件、归档日志文件等)。但不能恢复到异构系统中如Windows。 #2. 逻辑备份:
阅读全文
摘要:一、视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查
阅读全文
摘要:解决方法如下:
阅读全文
摘要:一、介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 2.为什么要有索引呢? 索引在MySQL
阅读全文
摘要:一、准备 首先先准备表 员工表和部门表 #建表 create table department( id int, name varchar(20) ); create table employee1( id int primary key auto_increment, name varchar(2
阅读全文
摘要:用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggr
阅读全文
摘要:先创建表 #创建表 create table employee( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male',
阅读全文
摘要:表1 foreign key 表2 则表1的多条记录对应表2的一条记录,即多对一 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记录也可以对应表1的一条记录 一对一: 表1的一条记录唯一对应表2的一条记录,反之亦然
阅读全文
摘要:一、介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (U
阅读全文
摘要:注意:1.如果你在cmd中书命令的时候,输入错了就用\c跳出 2.\s查看配置信息 一、操作文件夹(库) 增:create database db1 charset utf8; 删:drop database db1; 改:alter database db1 charset gbk; 查:show
阅读全文
摘要:一、知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list,相当于一个具体的文件 记录:1 susan 158426544 22,相当于文件中的一行内容 二、
阅读全文
摘要:一、基础部分 1.数据库是什么 之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上。 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题 但需要考虑的问题是:程序的执行效率依赖于承载它
阅读全文
摘要:相关名词解析 同步(synchronous):一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行 #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义, 其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候, 特指那些需要其他部
阅读全文
摘要:注意 1.不能无限的开进程,不能无限的开线程最常用的就是开进程池,开线程池。其中回调函数非常重要回调函数其实可以作为一种编程思想,谁好了谁就去掉2.只要你用并发,就会有锁的问题,但是你不能一直去自己加锁吧那么我们就用QUEUE,这样还解决了自动加锁的问题由Queue延伸出的一个点也非常重要的概念。以
阅读全文
摘要:一、死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程, 如下就是死锁 #死锁现象 死锁 from thr
阅读全文
摘要:一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性。 二、开启多线程的两种方式 创建线程的开销比创建进程的开销小,因而创建线程的速度快。 #开启进程的第一种方式 from multiprocessing import
阅读全文
摘要:一、什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程
阅读全文
摘要:一、数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此。 命令就是一个程序,按回车就会执行(这个只是在windows情况下
阅读全文
摘要:一、multiprocessing模块介绍 python中的多线程无法利用CPU资源(主要指计算密集型任务),在python中大部分情况使用多进程。python中提供了非常好的多进程包multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行功能(函数),该
阅读全文
摘要:一、什么是进程 进程:正在进行的一个过程或是一个任务。而负责执行任务的是CPU。 举例:(单核+多道,实现多个进程的并发): 比如说你就是一个CPU,你下午有几个活要干,吃饭,洗衣服,上厕所等。但是就在那一下午要把所有的事干完(而CPU同一时间只能干一件事),那么如何才能让多个任务实现并发执行的效果
阅读全文
摘要:一、什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可
阅读全文
摘要:一、网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 osi七层 引子: 须知一个完整的计算机系统是由硬件
阅读全文
摘要:一、创建类的执行流程 二、元类的认识 什么是元类呢?在Python3中继承type的就是元类 二、元类的示例 # 方式一 class MyType(type): '''继承type的就是元类''' def __init__(self,*args,**kwargs): print("MyType创建的
阅读全文
摘要:一、错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误:(逻辑错误),比如用户输入的不合适等一系列错误 那什么是异常呢? 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下。异
阅读全文
摘要:一、静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静
阅读全文
摘要:一、什么是单例模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 二、优点 对唯一实例的受控访问 单利相当于全局变量,但防止了命名空间被污染 与单利模式功能相似的概念:全局变量、静态变量(方法) 试问?为什么用单例模式,不用全局变量呢? 答、全局变量可能会有名称空间的干扰,如果有重名的可能会
阅读全文
摘要:一、回顾 面向对象 1.类:具有相同属性和方法 的一类事物 类名可以实例化一个对象 类名可以调用类属性,(静态属性 和(方法)动态属性) 2.对象:也就是实例 对象名:调用对象属性 调用方法 3.什么叫抽象? 从小到大的过程 4.组合 什么有什么的关系(将一个类的对象当做另一个类的属性) 5.继承
阅读全文
摘要:1.封装: 什么是封装呢?(封装不是单纯意义的隐藏,其实它还是可以查看的) 就是把一些不想让别人看的给隐藏起来了 封装数据:目的是保护隐私 功能封装:目的是隔离复杂度 如果用了私有的,在类的外部,无法直接使用变形的属性,但是在类的内部可以直接使用 # 对象名.属性名取值的三种方法 1.用我们常用的_
阅读全文
摘要:一、组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合 也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计算一个
阅读全文
摘要:一、面向过程:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点:极大地降低了写成学的复杂度,只需要顺着执行的步骤,堆叠代码即可 缺点:一套流水线或者流程就是用来解决一个问题,如果修改代码就都得改变 二
阅读全文
摘要:1.包A和包B下有同名模块也不会冲突,因为A.a与B.a来自俩个命名空间 2.常见目录结构 # 创建目录代码 import os os.makedirs('glance/api') os.makedirs('glance/cmd') os.makedirs('glance/db') l = [] l
阅读全文
摘要:一、模块 1.import.... 一个py文件就可以作为一个模块 模块的导入:直接导入文件的名字,不需要带着后缀 模块中的函数调用:模块名.函数名() 导入模块的时候做了三件事:1.首先开辟了一个新的命名空间my_moudle 2.执行了my_moudle内的代码 3.将my_moudle里面的名
阅读全文
摘要:import os # 1.切换路径 d = os.getcwd() #获取当前的工作路径 os.chdir('D:\\')#目录的切换 print(os.getcwd()) # (切换过去怎么回来呢?再chdir一下就回来了) os.chdir(d) print(os.getcwd()) # 2.
阅读全文
摘要:hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等。 那么什么是摘要算法呢?摘要算法又称为哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 注意:摘要算法不是一个解密算法。(摘要算法,检测一个字符串是否发生了变
阅读全文
摘要:一、time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=8, tm_min=4, tm_sec=32, tm_
阅读全文
摘要:一、认识模块 什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.py文件) 2.已被编译为共享库二和DLL的C或C++扩展 3.包好一组模块的包 4.使用C编写并连接到pyt
阅读全文
摘要:一、匿名函数:也叫lambda表达式 1.匿名函数的核心:一些简单的需要用函数去解决的问题,匿名函数的函数体只有一行 2.参数可以有多个,用逗号隔开 3.返回值和正常的函数一样可以是任意的数据类型 二、匿名函数练习 #请把下面的函数转换成匿名函数 def add(x,y) return x+y ad
阅读全文
摘要:一、递归的定义 1.什么是递归:在一个函数里在调用这个函数本身 2.最大递归层数做了一个限制:997,但是也可以自己限制 def foo(n): print(n) n+=1 foo(n) foo(0) 3.最大层数限制是python默认的,可以做修改,但是不建议你修改。(因为如果用997层递归都没有
阅读全文
摘要:内置函数操作 #!usr/bin/env python # -*- coding:utf-8 -*- # 1.locals()和globals() # def func(): # x=1 # y=2 # print(locals()) # print(globals()) # func() # 2.
阅读全文
摘要:一、可迭代协议:可以被迭代要满足要求的就叫做可迭代协议。内部实现了__iter__方法 iterable:可迭代的 对应的标志 什么叫迭代?:一个一个取值,就像for循环一样取值 字符串,列表,元组,集合,字典都是可迭代的 二、迭代器协议:内部实现了__iter__,__next__方法 迭代器大部
阅读全文
摘要:一、简单的装饰器 1.为什么要使用装饰器呢? 装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展 装饰器的本质:就是一个闭包函数 那么我们先来看一个简单的装饰器:实现计算每个函数的执行时间的功能 import time def wrapper(func): def inner():
阅读全文
摘要:1.三元运算if条件成立的结果 if 条件 else 条件不成立的结果例如: a=20 b=10 c=a if a>b else b print(c) 2.命名空间 全局命名空间:创建的存储“变量名与值的关系”的空间叫做全局命名空间 局部命名空间:在函数的运行中开辟的临时的空间叫做局部命名空间 内置
阅读全文
摘要:一、为什么要使用函数? 1.避免代码重用 2.提高代码的可读性 二、函数的定义与调用 1. def 函数名(参数1,参数2) ''' 函数注释''' print('函数体') return 返回值 定义:def关键字开头,空格之后接函数名和圆括号,最后还要加一个冒号。 def是固定的,不能变。 函数
阅读全文
摘要:函数基础 函数嵌套及作用域 装饰器 迭代器和生成器 内置函数 递归函数 匿名函数
阅读全文
摘要:打印结果:
阅读全文
摘要:一、文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 r模式,默认模式,文件不存在则报错 w模式,文件不存在则创建,文件存在则覆盖 a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写日志文件的时候常用),追加模式是一种特殊的写模
阅读全文
摘要:1.内存和硬盘都是用来存储的。 CPU:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的内容也都是存放在内存中的,断电后数据就丢失了。因而需要保存在硬盘上,点击保存按钮或快捷键,就把内
阅读全文
摘要:1.可变数据类型:在id不变的情况下,value可改变(列表和字典是可变类型,但是字典中的key值必须是不可变类型) 2.不可变数据类型:value改变,id也跟着改变。(数字,字符串,布尔类型,都是不可类型)
阅读全文
摘要:流程控制if…else 2 如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐 3 如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨 流程控制while循环 1 为何要用循环 2 条件循环:while,语法如下 3 死循环 4 循环嵌套与t
阅读全文
摘要:计算机可以进行的运算有很多种,不只是加减乘除,它和我们人脑一样,也可以做很多运算。 种类:算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们先了解前四个。 算术运算: a=10,b=20 赋值运算: 比较运算: 逻辑运算:
阅读全文
摘要:切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。 格式: [start:end:step] [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串 [start:]
阅读全文
摘要:一、集合的作用 知识点回顾:可变类型是不可hash类型,不可变类型是可hash类型 作用:去重,关系运算 定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则: 1.每个元素必须是不可变类型(可hash,可作为字典的key) 2.没有重复的元素 4.无序 注意集合的目的是将不同的值存放在一起,
阅读全文
摘要:字典常用方法 字典的表示方法: info_dic={'name':'haiyna','age':18,'sex':'female'} # 常用操作: # 1.存/取 info_dic={'name':'egon','age':18,'sex':'male'} print(info_dic['name
阅读全文
摘要:#为何要有元组,存放多个值,元组不可变,更多的是用来做查询 t=(1,[1,3],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2))) # print(type(t)) # #元组可以作为字典的key # d={(1,2,3):'egon'} # print(d,
阅读全文
摘要:一、列表 作用:多个装备,多个爱好,多门课程,多个女朋友等 定义:[]内可以有多个任意类型的值,逗号分隔 以下是列表的常用操作: 1 l=[1,2,3] #l=list([1,2,3]) 2 # print(type(l)) 3 4 #pat1 》优先掌握部分 5 # 索引:l=[1,2,3,4,5
阅读全文
摘要:1.%s,%d 举例1:name='egon' age=20 print("my name is %s my age is %s" %(name,age))#%s既能接受字符串,也能接受数字 print(‘my name is %s my age is %d’ %(name,age))#%d只能接受
阅读全文
摘要:1.bin()函数将十进制转换成而进制 2.oct()函数将十进制转换成八进制 3.hex()函数将十进制转换成十六进制 十六进制表示:0-9 a b c d e f 4.数字类型的特性: 只能存放一个值 一经定义,不可更改 直接访问 分类:整型,布尔,浮点,复数 5.字符串类型 引号包含的都是字符
阅读全文
摘要:数字类型和字符串类型 字符串的切片 列表 元组 字典 集合 数字类型和字符串类型 字符串的切片 列表 元组 字典 集合
阅读全文
摘要:一、python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python
阅读全文
摘要:目录 计算机基础知识 计算机的发展史及多道技术 计算机网络知识简单介绍
阅读全文
摘要:一、网络基础 1.网络指的是什么? 计算机与计算机之间通过物理链接介质(网络设备)连接到一起。 计算机与计算机之间基于网络协议通信(网络协议就相当于计算机界的英语) 2.osi七层协议: 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见物理设备: 3.五层模型讲
阅读全文
摘要:首先先补充一下上一篇的一个小问题。 应用程序的启动流程: 前提:应用程序是运行于操作系统之上的 举例:启动暴风音影 1.双击快捷方式 2.告诉操作系统一个文件路径 3.操作系统从硬盘读取文件内容到内存中 4.cpu从内存读取数据执行 一、操作系统发展史及多道技术 1.第一代计算机(1940~1955
阅读全文
摘要:一、为何要学习计算机基础? 好多人觉得自己有点基础就都想着直接敲代码,觉得基础知识很容易,很简单,就不怎么用心去学。然而,我觉得基础知识很重要。就像盖一栋楼房一样,你先要打好地基,再去盖房。 Python是一门编程语言,即通俗一点说就是语言。 我们都知道世界上有很多种语言,比如:汉语,英语,阿拉伯语
阅读全文
摘要:pyhon全栈开发学习目录 目录 一、计算机基础 二、python基础 三、函数 四、常用模块 五、模块和包 六、面向对象 七、网络编程和并发编程 八、数据库 九、前端 十、python web框架 十一、Git版本控制 十二、爬虫 十三、前端框架vue 十四、量化投资和python 十五、算法基础
阅读全文
摘要:一 编程与编程语言二 编程语言分类三 主流编程语言介绍四 python介绍五 安装python解释器六 第一个python程序七 变量八 用户与程序交互九 基本数据类型十 格式化输出十一 基本运算符十二 流程控制之if…else十三 流程控制之while循环十四 流程控制之for循环十五 开发工具IDE 一 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白...
阅读全文