04 2020 档案

摘要:1.模型类属性命名限制: 1)不能是python的保留关键字。 2)不允许使用连续的下划线,这是由django的查询方式决定的。 3)定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性名=models.字段类型(选项) 2.字段类型,使用时需要引入django.db.model 阅读全文
posted @ 2020-04-30 22:24 组装梦想 阅读(320) 评论(0) 推荐(0)
摘要:前端性能优化 从用户访问资源到资源完整的展现在用户面前的过程中,通过技术手段和优化策略,缩短每个步骤的处理时间从而提升整个资源的访问和呈现速度。网站的性能直接会影响到用户的数量,所有前端性能优化很重要。 前端性能优化分为如下几个方面: 一、代码部署: 1、代码的压缩与合并2、图片、js、css等静态 阅读全文
posted @ 2020-04-28 19:52 组装梦想 阅读(142) 评论(0) 推荐(0)
摘要:index.html: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, user-scalable= 阅读全文
posted @ 2020-04-28 18:35 组装梦想 阅读(226) 评论(0) 推荐(0)
摘要:1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width,user-scalable=no, 6 initial 阅读全文
posted @ 2020-04-28 18:32 组装梦想 阅读(160) 评论(0) 推荐(0)
摘要:1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width,user-scalable=no, 6 initial 阅读全文
posted @ 2020-04-28 18:29 组装梦想 阅读(146) 评论(0) 推荐(0)
摘要:表单练习: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, user-scalable=no, in 阅读全文
posted @ 2020-04-28 18:26 组装梦想 阅读(167) 评论(0) 推荐(0)
摘要:各式各样的按钮: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width,user-scalable=no, 阅读全文
posted @ 2020-04-28 18:18 组装梦想 阅读(281) 评论(0) 推荐(0)
摘要:一、bootstrap 容器 container-fluid 流体 container 1170 970 750 100% <div class="container-fluid">流体容器</div> <div class="container">响应式固定容器</div> bootstrap响应 阅读全文
posted @ 2020-04-28 18:12 组装梦想 阅读(266) 评论(0) 推荐(0)
摘要:转自:https://www.jianshu.com/p/b9b3d66aa0be Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程 阅读全文
posted @ 2020-04-24 22:12 组装梦想 阅读(450) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-04-23 18:08 组装梦想 阅读(4) 评论(0) 推荐(0)
摘要:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 1. 日志级别 日志一共分成5个等级,从低到高分别是: DEBUG INFO WARNING ERROR CRITICAL 说明: DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 阅读全文
posted @ 2020-04-23 17:22 组装梦想 阅读(327) 评论(0) 推荐(0)
摘要:hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来 1 >>> class test(): 2 ... name="xiaohua" 3 ... def r 阅读全文
posted @ 2020-04-21 21:53 组装梦想 阅读(167) 评论(0) 推荐(0)
摘要:出现这个错误是因为闭包内返回的应该是函数的引用,而不是一个函数对象本身。 错误修改:把return后面的函数括号去掉即可(使用IDE写程序的时候一定要注意这种错误,大部分IDE一个TAB键就会把括号加上) 阅读全文
posted @ 2020-04-21 21:20 组装梦想 阅读(937) 评论(0) 推荐(0)
摘要:1. 函数引用 1 def test1(): 2 print(" in test1 func ") 3 4 # 调用函数 5 test1() 6 7 # 引用函数 8 ret = test1 9 10 print(id(ret)) 11 print(id(test1)) 12 13 #通过引用调用函 阅读全文
posted @ 2020-04-21 20:24 组装梦想 阅读(139) 评论(0) 推荐(0)
摘要:一、视图: 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。 所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变); 方便操作,特别是查询操作,减少复杂的S 阅读全文
posted @ 2020-04-21 00:10 组装梦想 阅读(195) 评论(0) 推荐(0)
摘要:面向对象思维python对接mysql数据库: 1 from pymysql import * 2 3 class JD(object): 4 5 def __init__(self): 6 # 获取connection连接 7 self.conn = connect(host='localhost 阅读全文
posted @ 2020-04-20 23:38 组装梦想 阅读(143) 评论(0) 推荐(0)
摘要:1 -- 数据库准备 2 -- 创建一个数据库 3 create database python_test charset=utf8 4 -- 使用数据库 5 use python_test 6 -- 显示当前使用的数据库是哪个 7 select database() 8 -- 创建一个数据表stu 阅读全文
posted @ 2020-04-20 01:30 组装梦想 阅读(387) 评论(0) 推荐(0)
摘要:1 -- 数据库的操作 2 3 -- 链接数据库 4 mysql -uroot -p 5 mysql -uroot -p密码 6 7 -- 退出数据库 8 exit/q/ctrl+d 9 10 -- sql语句最后需要有分号;结尾 11 -- 显示数据库版本 12 select version(); 阅读全文
posted @ 2020-04-20 01:28 组装梦想 阅读(243) 评论(0) 推荐(0)
摘要:一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束 数据类型: 整数:int , bit 小数:decimal 字符串:varchar , char 日期:dat 阅读全文
posted @ 2020-04-20 01:20 组装梦想 阅读(151) 评论(0) 推荐(0)
摘要:1. __doc__ 表示类的描述信息 class Foo: """ 描述类信息,这是用于看片的神奇 """ def func(self): pass print(Foo.__doc__) #输出:类的描述信息 2. __module__ 和 __class__ __module__ 表示当前操作的 阅读全文
posted @ 2020-04-20 01:17 组装梦想 阅读(200) 评论(0) 推荐(0)
摘要:with open(文件) as f: pass open方法的返回值赋值给变量f,当离开with代码块的时候,系统会自动调用f.close()方法,with的作用和使用try/finally语句是一样的。 上下文管理器: 任何实现了__enter__()和__exit__()方法的对象都可称为上下 阅读全文
posted @ 2020-04-20 01:16 组装梦想 阅读(92) 评论(0) 推荐(0)
摘要:1.类属性、实例属性: 它们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同 实例属性属于对象 类属性属于类 类属性在内存中保存一份,实例属性在每个对象中保存一份 2.实例方法、静态方法和类方法: 实例方法:由对象调用;至少一个self参数;执行实例方法时,自动将调用该方法的对象赋值给s 阅读全文
posted @ 2020-04-20 01:15 组装梦想 阅读(151) 评论(0) 推荐(0)
摘要:property属性的定义和调用注意点: 定义时,在实例方法的基础上添加@property 装饰器;并且仅有一个self参数 调用时,无需括号 python的property属性的功能是:property属性内部进行一系列的逻辑运算,最终将计算结果返回。 property属性的两种方式: 装饰器 即 阅读全文
posted @ 2020-04-20 01:04 组装梦想 阅读(249) 评论(0) 推荐(0)
摘要:重写和重载:重写是覆盖父类的方法 重载可以根据传入参数的不同而调用对应的函数 多继承的三种写法: 子类(孙类)0的方法中写父类.父类方法名(*args,**kargs) 这种写法如果子类很多,当创建一个对象,定义这个对象的类继承了多个子类时,父类方法将被调用多次 子类(孙类)的方法中写super() 阅读全文
posted @ 2020-04-20 00:56 组装梦想 阅读(143) 评论(0) 推荐(0)
摘要:为什么要封装: 在使用面向过程编程时,当需要对数据处理时,需要考虑哪个模板中哪个函数来进行操作,但是当用面向对象编程时,因为已经将数据存储到了这个独立的空间中,这个独立的空间(即对象)中通过一个特殊的变量(__class__)能够获取到类(模板),而且这个类中的方法是有一定数量的,与此类无关的将不会 阅读全文
posted @ 2020-04-20 00:52 组装梦想 阅读(108) 评论(0) 推荐(0)
摘要:1. import 搜索路径 路径搜索 从上面列出的目录里依次查找要导入的模块文件 '' 表示当前路径 列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序 程序执行时添加新的模块路径 sys.path.append('/home/itcast/xxx') sys.path.inse 阅读全文
posted @ 2020-04-20 00:50 组装梦想 阅读(605) 评论(0) 推荐(0)
摘要:xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:_ 阅读全文
posted @ 2020-04-20 00:46 组装梦想 阅读(153) 评论(0) 推荐(0)
摘要:浅拷贝:浅拷贝是对于一个对象的顶层拷贝。通俗的理解是:拷贝了引用,并没有拷贝内容 copy.copy实现浅拷贝,如果copy.copy拷贝的是元组,那么它不会进行浅拷贝,仅仅是指向。原因:元组是不可变类型,那么意味着数据一定不能修改,因此用copy.copy的时候它会自动判断,如果是元组它就是指向了 阅读全文
posted @ 2020-04-20 00:43 组装梦想 阅读(112) 评论(0) 推荐(0)
摘要:GIL面试题: 描述Python GIL的概念,以及它对Python多线程的影响。编写一个多线程抓取网页的程序,并阐述多线程抓取是否可比单线程性能有提升,并解释原因。 答案: Python语言和GIL没有关系,仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL。 GIL:全局解释器锁 阅读全文
posted @ 2020-04-20 00:41 组装梦想 阅读(86) 评论(0) 推荐(0)
摘要:一、读取Excel中的数据: 1 import xlrd 2 3 # excle文件对象 4 book = xlrd.open_workbook('income.xlsx') 5 # print(f'包含表单数量:{book.nsheets}') 6 # print(f'表单的名称分别为:{book 阅读全文
posted @ 2020-04-15 18:18 组装梦想 阅读(324) 评论(0) 推荐(0)
摘要:应用场景:在原有函数的基础上,增加一点功能 例如:下面代码在返回值前面增加字符串‘当前时间:’ 1 import time 2 def getXXXTime()3 return time.strftime('%Y_%m_%d %H:%M:%S',time.localtime()) 装饰代码: 1 i 阅读全文
posted @ 2020-04-14 21:17 组装梦想 阅读(144) 评论(0) 推荐(0)
摘要:创建目录: 1 import os 2 os.makedirs('tmp/python/fileop', exist_ok=True) 会在当前目录下递归创建 tmp/python/fileop 目录,exist_ok=True 指定了,如果某个要创建的目录已经存在,也不会报错 删除目录或文件: 1 阅读全文
posted @ 2020-04-14 18:14 组装梦想 阅读(169) 评论(0) 推荐(0)
摘要:TCP/TP简介: 计算机网络沟通用TCP/IP协议。 TCP/IP协议(族): TCP/IP协议传输示意图: * 另一套标准OSI(还在理论阶段),分为7层:OSI将TCP/IP的应用层分为:应用层、表示层和会话层,将TCP/IP的链路层分为:数据链路层和物理层。 网络通信过程: 1.两台电脑的网 阅读全文
posted @ 2020-04-14 11:55 组装梦想 阅读(474) 评论(0) 推荐(0)
摘要:epoll仅限Linux或Unix系统(服务器)。 片面讲epoll并发原理:1.数据共享(内存映射(mmap)技术),即client_socket_list和操作系统共享,省去拷贝fb给操作系统的时间 2.事件监听(基于事件的就绪通知方式),不再是一直遍历客户端套接字列表来得知哪个套接字有数据,而 阅读全文
posted @ 2020-04-14 11:43 组装梦想 阅读(202) 评论(0) 推荐(0)
摘要:多进程: 1 import socket 2 import re 3 import multiprocessing 4 5 6 def service_client(client_socket): 7 """为这个客户端返回数据""" 8 # 1.接收浏览器发送过来的请求 9 request = c 阅读全文
posted @ 2020-04-14 11:28 组装梦想 阅读(187) 评论(0) 推荐(0)
摘要:网络:网络是一种辅助双方或者多方能够连在一起的工具 使用网络的目的:就是为了联通多方然后进行通信用的,即把数据从一方传递到另一方 所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。 HTTP协议: 通俗讲http是一种约定浏览器和服务器之间传输的协议,服务器和浏览器之间发 阅读全文
posted @ 2020-04-14 11:08 组装梦想 阅读(442) 评论(0) 推荐(0)
摘要:通俗描述: 1.有一个老板想要开个工厂生产某件商品,他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料,这些所有的为了能够生产商品而准备的资源称之为:进程 2.只有生产线是不能够进行生产的,所以老板得找工人来进行生产,这个工人能够利用这些材料最终一步步的将商品做出来,这个来做事情的 阅读全文
posted @ 2020-04-14 10:44 组装梦想 阅读(164) 评论(0) 推荐(0)
摘要:协程的好处:当进程有耗时操作时,通过协程可以完成后续操作。协程切换任务资源很小,效率高。 使用yield完成多任务: 1 import time 2 3 4 def work1(): 5 while True: 6 print(" 1 ") 7 time.sleep(0.1) 8 yield 9 1 阅读全文
posted @ 2020-04-14 10:41 组装梦想 阅读(161) 评论(0) 推荐(0)
摘要:正则表达式实用目的:1.判断用户输入的数据是否符合要求 2.爬取数据筛选自己想要的信息 匹配单个字符: 字符 功能 . 匹配任意1个字符(除了\n) [] 匹配[]中列举的字符中的一个 \d 匹配数字,即0-9 \D 匹配非数字,即不是数字 \s 匹配空白,即空格 tab键 \S 匹配非空白 \w 阅读全文
posted @ 2020-04-13 23:19 组装梦想 阅读(356) 评论(0) 推荐(0)
摘要:将套接字设置成默认非堵塞状态,用捕获异常处理套接字因非堵塞出现的异常,达到程序的正常运行,效果如下: 1 import socket 2 3 4 def main(): 5 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_S 阅读全文
posted @ 2020-04-12 22:41 组装梦想 阅读(155) 评论(0) 推荐(0)
摘要:生成器概念:在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用最简便的语法,即生成器。生成器是一类特殊的迭代器。 创建生成器的方法: 1.使用元组推导式 1 import random 阅读全文
posted @ 2020-04-10 22:57 组装梦想 阅读(144) 评论(0) 推荐(0)
摘要:一、列表推导式: (1)生成指定范围的数值列表,语法格式如下: list = [Expression for var in range] 参数说明: list:表示生成的列表名称 Expression:表达式,用于计算新列表的元素 var:循环变量 range:采用range()函数生成的range 阅读全文
posted @ 2020-04-10 15:37 组装梦想 阅读(543) 评论(0) 推荐(0)
摘要:一、语法: list.sort([key][,reverse]) # 数字、字符串按照ASCII,中文按照unicode从小到大排序。排序会改变原有列表,不会形成副本,无返回值 new_list = sorted(list,[key][,reverse]) # 默认如果是数字则按由小到大排序,若是字 阅读全文
posted @ 2020-04-10 15:00 组装梦想 阅读(1236) 评论(0) 推荐(0)
摘要:迭代器简介:迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 for循环执行步骤:1.判断对象是否是可迭代的(创建对象的类要有__iter__方法) 2.判断对象的__iter__方法的返回 阅读全文
posted @ 2020-04-09 22:44 组装梦想 阅读(181) 评论(0) 推荐(0)
摘要:常用快捷键: 编辑类: Ctrl + D 复制选定的区域或行 Ctrl + Y 删除选定的行 Ctrl + Alt + L 代码格式化 Ctrl + Alt + O 优化导入(去掉用不到的包导入) Ctrl + 鼠标 简介/进入代码定义 Ctrl + / 行注释 、取消注释 Ctrl + [ 快速跳 阅读全文
posted @ 2020-04-09 18:02 组装梦想 阅读(187) 评论(0) 推荐(0)
摘要:进程概述:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。 进程创建类似线程,通过multiprocessing模块的Process类创建进程。类的括号内部也可以传入target=方法名和用args=()传入实参到要执行的方法内部,args也必须为元组。 一个简单的 阅读全文
posted @ 2020-04-09 17:20 组装梦想 阅读(665) 评论(0) 推荐(0)
摘要:资源总是有限的,程序运行如果对同一个对象进行操作,则有可能造成资源竞争,也可能导致读写混乱,此时需要引入锁。 锁提供如下方法: 1.Lock.acquire([blocking]) # 上锁2.Lock.release() # 解锁3.threading.Lock() # 加载线程的锁对象,是一个基 阅读全文
posted @ 2020-04-08 23:39 组装梦想 阅读(642) 评论(0) 推荐(0)
摘要:单线程执行代码: 1 import time 2 3 4 def saySorry(): 5 print("测试代码") 6 time.sleep(1) 7 8 9 if __name__ == '__main__': 10 for i in range(5): 11 saySorry() 单线程下 阅读全文
posted @ 2020-04-08 23:16 组装梦想 阅读(166) 评论(0) 推荐(0)
摘要:1 from multiprocessing import Pool 2 import os, time, random 3 4 5 def worker(msg): 6 t_start = time.time() # 获取开始时间 7 print("%s开始执行,进程号为%d" % (msg, o 阅读全文
posted @ 2020-04-08 22:36 组装梦想 阅读(8900) 评论(0) 推荐(2)
摘要:简介:同一时间,聊天器两端均可收发数据 1 import socket 2 import threading 3 4 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 5 6 7 def send_msg(dest_ip, d 阅读全文
posted @ 2020-04-08 20:39 组装梦想 阅读(259) 评论(0) 推荐(0)
摘要:效果: 客户端 服务器 客户端代码: 1 import socket 2 3 4 def main(): 5 while True: 6 # 1.创建套接字 7 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 8 9 阅读全文
posted @ 2020-04-08 11:19 组装梦想 阅读(249) 评论(0) 推荐(0)
摘要:开发环境:python 3.8.0+requests+pygame+ReNamer Pro 简介:爬取网络电子书籍,按章节名称写入每一章的内容(且按章节名排序),存于电子书名文件夹下。 效果: 代码如下: 1 import requests 2 import re 3 import os 4 5 # 阅读全文
posted @ 2020-04-07 21:36 组装梦想 阅读(405) 评论(0) 推荐(0)
摘要:效果: 1 import socket 2 3 4 def main(): 5 while True: 6 # 创建监听套接字 7 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 8 9 # 绑定IP和Por 阅读全文
posted @ 2020-04-07 11:48 组装梦想 阅读(545) 评论(0) 推荐(0)
摘要:效果: 1 import socket 2 3 4 def main(): 5 while True: 6 # 1.创建tcp套接字 7 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 8 9 # 2.连接服务器 10 t 阅读全文
posted @ 2020-04-07 11:44 组装梦想 阅读(404) 评论(0) 推荐(0)
摘要:效果展示 网络调试助手下载链接:https://pan.baidu.com/s/1f9wTqRhAeyUN87XDcQUa7w提取码: kgur 1 import socket 2 3 4 def send_msg(udp_socket, send_data): 5 """发送数据""" 6 sen 阅读全文
posted @ 2020-04-05 16:19 组装梦想 阅读(207) 评论(0) 推荐(0)
摘要:Redis的用途: 数据库、缓存和消息中间件 数据类型 1 字符串(String) 2 散列(hashes) 3 列表(lists) 4 集合(sets) 5 有序集合(sorted sets) 安装 参照:https://www.runoob.com/redis/redis-install.htm 阅读全文
posted @ 2020-04-04 16:08 组装梦想 阅读(113) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-04-02 17:21 组装梦想 阅读(180) 评论(0) 推荐(0)
摘要:状态码 首部字段 通用首部: 1.Cache-Control 缓存服务器 2.Connection 维持持续连接 Connection:Keep-Alive 3.Date 文档产生日期 4.Transfer-Encoding 规定传输报文主体时的编码方式 5.Upgrade 检测HTTP协议及其他协 阅读全文
posted @ 2020-04-02 17:19 组装梦想 阅读(112) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-04-02 17:11 组装梦想 阅读(0) 评论(0) 推荐(0)
摘要:CSS教程 阅读全文
posted @ 2020-04-02 16:56 组装梦想 阅读(110) 评论(0) 推荐(0)
摘要:效果展示 1 from flask import Flask, render_template 2 from flask_mongoengine import MongoEngine 3 from datetime import datetime 4 5 app = Flask(__name__) 阅读全文
posted @ 2020-04-02 15:53 组装梦想 阅读(774) 评论(0) 推荐(0)
摘要:1 # from mongoengine import * 2 from mongoengine import connect, Document, EmbeddedDocument, \ 3 StringField, IntField, FloatField, ListField, Embedde 阅读全文
posted @ 2020-04-02 15:43 组装梦想 阅读(300) 评论(0) 推荐(0)