- 博客(124)
- 收藏
- 关注
原创 Django之旅:第三节--templates模版的使用
2、在settings.py文件里面设置(设置后,优先在根目录找,如果找不到,在根据默认注册app顺序寻找)会在app下新创建static目录,并在static目录里面创建css、img、js、plugins目录。2、在templates目录下新疆html文件(views视图所需要的html)1、在app目录下新建templates目录,(默认先在app目录里面找)注:根据app的注册顺序,逐一去他们的templates目录下寻找。在开发中过程中一般会将:图片、css、js,都会当作静态文件处理。
2025-03-20 11:59:34
388
原创 Django之旅:第二节--启动运行django
注:创建app的指令:python manage.py startapp app名称。2、pytcharm启动。3、编写视图函数(views.py文件里面配置)注意:运行时,注意是django项目名称,4、启动django项目。
2025-03-17 18:17:47
277
原创 Django初始化第二章
*从Django3.1版本开始,配置文件settings.py的路径信息改用pathlib模块,Django3.1之前版本使用os模块。templates文件夹和MyAPP、index同级。模版路径设置,settings.py文件里面设置。前期准备工作已经全部做好了。
2025-02-10 16:07:42
347
原创 简析创建Django初始化文件含义
ASGI是异步服务器网关接口(Asynchronous Server Gateway Interface)旨在提供支持异步的python Web服务器、框架和应用程序之间的标准接口。urls.py是一个URLconf(url配置文件),包含项目的所有url声明,能够将url请求和处理该请求的视图函数之间建立对应关系。这是一个空白的文件,带有这个文件的目录会被认为是python package(python的包)wsgi.py是兼容WSGI的web服务器入口,通过它运行Web应用程序。
2025-02-10 10:05:18
324
原创 【爬虫小白】scrapy设置User-Agent小技巧
我们在scrapy项目中,修改请求时的User-Agent可以有两种方法:一种时修改settings里面的USER-AGENT变量;第二种是通过Downloader Middleware的proscss_request()方法来修改。第一种方法非常简单,我们只需要在setting.py里面加USER-AGENT的定义即可:USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML,
2021-03-09 11:43:54
2119
原创 【爬虫小白】各种请求使用代理的方法
一下以快代理的代理的使用方法作为例子requests设置代理import requestsproxy = '127.0.0.1:7777'proxies={ 'http:http://'+proxy, 'https:https://'+proxy}try: response=requests.get('https://baidu.com',proxies=proxies) print(response.text)except requests.excep
2021-03-01 15:55:42
539
原创 异步采集实现
直接上代码,有不懂留言import asyncioimport aiohttpimport json, timeINDEX_URL = 'https://dynamic5.scrape.center/api/book/?limit=18&offset={offset}'DETAIL_URL = 'https://dynamic5.scrape.center/api/book/{id}'PAGE_SIZE = 18PAGE_NUMBER = 5 # 爬取页码数量CONCURRE
2021-02-26 16:49:12
440
原创 【爬虫小白】aiohttp异步爬取简单使用
了解aiohttp aiohttp是一个基于asyncio的异步http网络模块,它既提供了服务端,有提供了客户端。其中我们可以用服务端搭建一个支持异步处理的服务器,用于处理请求并返回响应,类似于Django、Flask等一些Web服务器,而客户端我们就可以用来发起请求,就类似于requests来发起一个http请求然后获得响应,但requests发起的是同步网络请求,而aiohttp则发起的是异步的。我们先了解一下aiohttp客户端部分使用。基本使用基本实例我们先看一个...
2021-02-26 16:45:10
1969
1
原创 【爬虫小白】异步爬虫原理和解析
异步基础概念在了解异步协程之前,先得了解一些基础概念,如堵塞和非堵塞、同步和异步、多进程和协程。阻塞阻塞状态指程序未得到所需计算资源被挂起的状态。程序在等待某个操作完成期间,自身无法继续处理其它的事情,则称该程序在该操作上是阻塞的。常见的阻塞形式有:网络I/O阻塞、磁盘I/O阻塞、用户输入阻塞等。阻塞是无处不在的,包括CPU切换上下文时,所有的进程都无法真正处理事情,它们也会被阻塞。如果是多核CPU则正在执行上下文切换操作的核不可被利用。非阻塞程序在等待某操作过程中,自身不被阻塞,可
2021-02-24 11:20:10
914
原创 【Python】爬虫入门首选,Request库的基本使用
安装pip install requests请求GET请求【示例】如下:import requestsr=requests.get('http://baidu.com')print(r.text)get请求携带参数【示例】如下:#方式一url="http://httpbin.org/get?name=germey&age=25"#参数是name=germey 和age=25#可以直接请求import requestsreq =reqquest
2020-12-31 11:26:09
238
原创 【Python】理解多进程基本原理
多进程的含义进程(Process)是具有一定独立功能的程序关于某给数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。多进程就是启用多个进程同时运行,由于进程是线程的集合,而且进程是由一个或多个线程构成,所以多进程的运行意味着有大于或等于进程数量的线程在运行。Python多进程的优势根据这节线程基本原理了解到,由于进程中GIL的存在,Python中的多线程并不能很好地发挥多核优势,一个进程中的多线程,在同一时刻只能有一个线程运行。对于多进程来说,每一个进程都有属于自己的GI
2020-12-30 15:22:47
728
原创 【Python】理解多线程基本原理
目录多线程的含义并行和并发Python实现多线程创建子线程方法一创建子线程方法二守护线程互斥锁多线程的含义线程是操作系统进行运算调度的最小单位,是进程中的一个最小运行单元。多线程就是一个进程中同时执行多个线程,比如,打开一个浏览器,是一个进程,浏览器里面打开多个页面,有的页面打开音乐,有的打开视频,它们可以同时运行,互不干扰,这就是多线程在工作。并行和并发并发并发,是指同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行。比如说一个处.
2020-11-24 15:43:38
550
1
原创 python-模块搜索路径(重要)
当我们导入某给模块文件时,python解释器去哪里找这个文件,只有找到这个文件才能读取、装载运行该模块文件,一般按照如下路径寻找模块文件(按照顺序寻找,找到即停不继续往下找)内置模块 当前目录 程序的主目录 pythonpath目录(如果已经设置,pythonpath环境变量(windows设置的系统变量)) 标准链接库目录 第三方目录(site-packages目录) .pth文件的内容(如果存在的话) sys.path.append()临时添加目录当任何一个pytho...
2020-11-06 17:33:10
364
原创 【python】异常的处理以及traceback的异常处理
异常机制的本质 异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等等。 所谓异常处理,就是指程序在出现问题时依然可以正确的执行剩余的程序,而不会因为异常而终止程序执行。 python中,引进了很多用来描述和处理异常的类,称为异常类,异常类定义中包含类该类异常的信息和对异常进行处理的方法,下面叫为完整的展示了python中内建异常类的继承层次:BaseException(所有异常的父类) Keyboa...
2020-11-04 18:39:11
1264
原创 【python】理解递归算法的用法
递归是一种常见的解决问题的方法,即把问题逐渐简单化,递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或间接的调用自己。 利用递归可以用简单的程序来解决一些复杂的问题,比如:斐波那契数列的计数、汉诺塔、快排等等问题。递归结构包括两个部分:定义递归头:什么时候不调用自身方法,如果没有头,将会陷入死循环,也就是递归的结束条件。 递归体:什么时候需要调用自身方法。【示例】#测试递归num=1def fact(): global num ...
2020-11-04 15:24:23
257
原创 python--shutil模块(拷贝和压缩)
shutil模块是python标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等,还可以做文件和文件夹的压缩、解压缩操作。 os模块提供了对目录或文件的一般操作,shutil模块作为补充,提供了移动、肤质、压缩、解压等操作,这些都是os模块没有提供的。【操作-示例拷贝】#测试shutil模块的用法:拷贝import shutil#简单拷贝文件shutil.copyfile(‘1.txt’,‘1_copy.txt') #1.txt是原文件,1_co...
2020-11-04 11:16:31
391
1
原创 python-os模块的操作使用
os模块可以帮我们直接对操作系统进行操作,可以直接调用操作系统的可执行文件、命令,直接操作文件、目录等,是系统运维的核心基础。os调用操作系统文件和命令os.system可以帮我们直接调用系统的命令【示例】os.system调用windows系统的记事本程序import osos.system("notepad.exe")os.system("cmd") #可以直接打开Windows的cmd【示例】os.system调用ping命令import osos.system("
2020-11-03 17:49:33
462
原创 【python-文本系列】CSV文件的操作
csv文件的操作csv(Comma Soperated Values)是逗号分隔符文本格式,常用于数据交换、Excel文本和数据库数据的导入和导出。与Excel文件不同,cav文件中:值没有类型,所有值都是字符串 不能指定字体颜色样式 不能指定单元格的宽高,不能合并单元格 没有多个工作表 不能嵌入图像图表python标准库的模块csv提供了读取和写入csv格式文件的对象。我们在Excel中建立一个简单的格式:另存为“csv(逗号隔开),我们打开查看这个csv文件内容:姓名
2020-11-02 15:56:10
1124
原创 python-使用pickle序列化
pickle序列化 python中,一切皆对象,对象本质上就是一个“存储数据的内存块”,有时候,我们需要将“内存块的数据”保存到硬盘上,或者通过网络传输到其他计算机上,这时候,就需要“对象的序列化和反序列化”,对象的序列化机制广泛的应用在分布式、并行行系统上。 序列化指的是:将对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程,将读取到的“串行化数据”转化成对象。 可以使用pickle模块中的函数,实现序列化和反序列化操作。...
2020-11-02 15:10:47
276
原创 【python-文本系列】文本文件的读取以及常用方法的总结
文件的读取一般使用以下三个方法:1.read([size]) 从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件。读取到文件末尾,会返回空字符串。2.readline() 读取一行内容作为结果返回,读取到文件末尾,会返回空字符串。3.readlines() 文本文件中,每一行作为一个字符串存入列表中,返回该列表【操作例子】读取一个文件前4个字符with open(r'bb.txt','r',encodi...
2020-10-30 15:39:36
1033
原创 爬虫系列-掌握HTTP基本原理(重要)
目录首先需要了解URL和URI的区别URI和URL超文本协议HTTP和HTTPSHTTPHTTPSHTTP请求过程请求基础认识请求请求方法请求头请求体响应响应头响应体首先需要了解URL和URI的区别URI和URLURL(Universal Resource Locator)即统一资源定位符URI(Uniform Resource Identifier)即统一资源标志符号例如:https://github.com/fac.
2020-10-28 16:51:54
683
原创 【python-文本系列】常用编码介绍(番外---文件编码问题)
常用编码介绍 在操作文本文件时,经常会操作中文,这时就会经常碰到乱码问题: 常用的编码之间的关系如下:ASCII编码 全称为 American Standard Code Information Interchange,美国信息交换标准代码,这时世界上最早最通用的单字节编码系统,主要用来显示现代英语以及其他西欧语言。 ASCII码用7位表示,只能表示128个字符,只定义了2^7=128个字符,用7bit即可...
2020-10-26 16:54:51
216
原创 【python-文本系列】文件操作(IO技术)
目录概率文件分为两类(文本文件和二进制文件)文件操作相关模块概述创建文件对象open()文件的写入概率 一个完整的程序一般都包括数据的存储和读取,我们在练习时所写的程序数据都没有进行实际存储,因此,Python解释器执行完数据就消失了,实际开发中,我们经常需要从外部存储介质(硬盘,光盘,U盘、数据库中等等)读取数据,或者将程序产生的数据存储到文件中,实现“持久化”保存。 很多软件系统是将数据存储到数据库中,数据库实际也是基于文件形式存储的。...
2020-10-22 17:19:44
184
原创 Python的设计模型-----工厂模式和单例模式
设计模式是面向对象语言特有的内容,使我们在面临某一类问题时固定的做法,设计模式有很多种,比较流行的是:GOF(Goup Of Four)23种设计模式。我们没有必要全学,学习几个常用的的即可 我们最常用的模式:工厂模式和单例模式(只要在复杂的场景在会使用)工厂模式 工厂模式实现了创建者和调用者的分离,使用专门的工厂类将选择实现类、创建对象进行统一的管理和控制。 【例子】# 工厂模式'''一般情况下我们要创建一个工厂类(创造我们想创造...
2020-10-16 16:19:35
729
2
原创 Python关于另一种类继承是组合(番外----组合)
组合 “is-a”关系我们可以使用“继承”,从而实现子类拥有父类的方法和属性。“is-a”关系指的是类似这样的关系:狗是动物。狗类就应该继承动物类 “has-a”关系,可以使用“组合”也能实现一个类拥有另一个类的方法和属性。“has-a”关系指的是这样的关系:手机拥有cpu。【例子】# 继承class A1: def say_a1(self): print('这是大写A')class B1(A1): passb...
2020-10-14 18:38:30
114
原创 Python对象的浅拷贝和深拷贝(番外---对象拷贝)
对象的浅拷贝和深拷贝变量的赋值操作 只是形成两个变量,实际还是指向同一个对象浅拷贝 Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象和拷贝对象会引用同一个子对象。深拷贝 使用copy模块的deepcopy函数,递归拷贝对象中包含的字对象,源对象和拷贝对象所有的子对象也不同。【例子】# 测试对象的浅拷贝、深拷贝import copyclass MobilePho...
2020-10-14 16:41:14
256
2
原创 Python特殊属性(番外--查看类对象属性的方法)
特殊属性Python对象中包含了很多下划线开始和结束的属性,这些都是特殊属性,有特殊用法,这里列出常见的特殊属性: 特殊方法 含义 obj代表是普通对象 obj.__dict__ 对象的属性字典 obj.__class__ 对象所属的类 class对象方法 class.__bases__ 类的基类元组(多继承) class.__base__ 类的基类 class.__mro__ 类层次结构 class.__subclas.
2020-10-13 17:21:18
186
原创 python特殊方法和运算符重载(番外--重载)
python的运算符实际上是通过对象的特殊方法实现的【例如】a=20b=30c=a+bd=a.__add__(b)print("c=",c)print("d=",d)执行返回 c= 50 d= 50常见的特殊方法统计说明方法 说明 例子 __init__ 构造方法 对象创建:p=Person() __del__ 析构方法 对象回收 __repr__,__str__ 打印,转换 print(a...
2020-10-13 11:04:49
318
原创 python面向对象三大特征(封装,继承,多态)
python是面向对象的语言,也支持面向对象编程的三大特性:继承、封装、多态。*封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法,相当于将“细节封装起来”,只对外暴露“相关调用方法”。 通过“私有属性,私有方法“的方式,实现”封装”,python追求简洁的语法,没有严格的语法级别的“访问控制符”。*继承 继承可以让子类具有父类的特性,提高代码的重用性。 从设计上是一种增量进化,原有父类设计不变的情况下,可以增加新...
2020-10-10 11:20:42
343
1
原创 python查看类的继承层次结构以及object根类
通过类的方法mro()或者类的属性__mro__可以输出这个类的继承层次结构【操作】查看类的继承层次结构class a(): passclass b(a): passclass c(b): passif __name__ == '__main__': print(c.mro())执行反回:[<class '__main__.c'>, <class '__main__.b'>, <class '__main__.a'&
2020-10-09 16:38:44
1811
1
原创 python 关于私有属性和私有方法
私有属性和私有方法 python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别,关于私有属性和私有方法,有如下要点: 1.通常我们约定,两个下划线开头的属性是私有的(private),其他为公共的(public)。 2.类内部可以访问私有属性(方法) 3.类外部不能直接访问私有属性(方法) 4.类外部可以通过“_类名__私有属性(方法)名“访问私有属性(方法)【注】:方法本质上也是属性!只不过是可以通过()执行而已,所...
2020-09-25 16:38:44
322
原创 python方法没有重载以及方法的动态性
__call__方法和可调用对象 定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用方法没有重载 在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可,方法签名包含3个部分:方法名,参数数量,参数类型。 python中,方法的参数没有类型(调用时确定参数的类型),参数的数量也可以由可变参数控制,因此,python中没有方法的重载的,定义一个方法即可由多种调用方式,相当于实现了其他语言中的方法重载。 ...
2020-09-25 16:14:40
162
原创 python的__del__方法和垃圾回收机制
__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作,比如:释放对象占用的资源,例如:打开的文件资源、网络连接等。 python实现自动的垃圾回收机制。当对像没有被引用时(引用计数为0),由垃圾回收器调用__del__方法。 也可以通过del语句删除对象,从而保证调用__del__方法。 系统会自动提供__del__方法,一般不需要自定义析构方法。例子:class Perso...
2020-09-08 11:21:01
546
原创 python的类属性和类方法以及静态方法的含义
类属性:类属性是从属于“类对象”的属性,也称为“类变量”,由于,类属性从属于类对象,可以被所有实例对象共享。类属性的定义方式:class stu:#类名 类变量名=初始值在类中或者类的外面,可以通过:“类名.类变量名“来读写。类方法:类方法是从属于“类对象”的方法,类方法通过装饰器@classmethod来定义的,格式如下:@classmethoddef 类方法名(cls,[,形参列表]): 函数体要点如下:@classmethod必须位于方法上面一
2020-09-07 22:45:30
448
原创 Python实例属性和实例方法
实例属性实例属性是从属于实例对象的属性,也称为“实例变量”,使用有如下几个要点:1.实例属性一般在__init__()方法中通过如下代码定义: self.实例属性名 = 初始值2.在本类的其他实例方法中,也是通过self进行访问: self.实例属性名3.创建实例对象后,通过实例对象访问: obj01=类名() #创建对象,调用__init__()初始化属性 obj...
2020-08-24 16:40:59
798
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人