- 博客(27)
- 收藏
- 关注
原创 Python高级函数之迭代器与生成器--03
迭代器与生成器1.属性描述符1.1 属性描述符协议1.1.1 使用类方法创建描述符1.1.2 使用属性类型创建描述符1.1.3 描述符查找顺序2.元类2.1 create_class()创建元类2.2 type()创建元类2.3 metaclass属性3.Python迭代器3.1 可迭代对象3.2 判断是否可迭代3.3 可迭代对象与迭代器区别4.生成器4.1 生成器和迭代器对比4.2 如何创建生成器4.3 生成器函数1.属性描述符1.1 属性描述符协议属性描述符是实现了特定协议的类,只要实现了__ge
2021-04-11 03:03:06 112
原创 Python高级编程之内存与垃圾回收--02
内存与垃圾回收1.如何在环状数据结构中管理内存1.1 弱引用1.2 双链表2. 通过实例方法名字的字符串调用方法3.内存分配3.1 内存池机制3.2 缓冲池机制4.垃圾回收机制4.1 查看内存消耗4.2 Python内部的引用计数机制4.3 手动回收垃圾4.4 循环引用的垃圾回收4.5 调试内存泄漏5.使用 pdb调试代码1.如何在环状数据结构中管理内存在python中,垃圾回收器通过引用计数来回收垃圾对象,当一个对象引用计数为0,或者只剩下弱引用时,这个对象会被释放。1.1 弱引用弱引用不增加引用
2021-04-11 02:04:24 130
原创 Python高级编程之类与对象--01
类与对象1.python多态2.抽象基类(abc模块)2.1 抽象基类的作用2.1.1 检查某个类中是否有某种方法2.1.2 强制子类必须实现父类的方法2.2 type与isinstance区别3.类属性与实例属性3.1 基本查找顺序3.2 多继承查询顺序3.3 Python对象自省机制3.4 super函数3.5 派生内置不可变类型3.6 如何为创建大量实例节省内存4.python中的with语句4.1 自定义类使用上下文管理器4.2 如何创建可管理的对象属性5.如何让类支持比较操作5.1 类比较的优化
2021-04-09 20:27:35 129
原创 Django项目之前导---01
项目准备1.项目介绍1.1 项目开发流程介绍1.1.1 架构设计1.1.2 数据库设计1.2 项目需求分析1.2.1 需求分析原因1.2.2 项目模块分析1.3 项目架构设计1.3.1 项目开发模式1.3.2 项目运行机制2.工程创建与配置2.1 创建工程2.2 配置开发环境2.2.1 新建配置文件2.2.2 配置MySQL数据库2.2.3 安装驱动模块2.3 配置Redis数据库2.3.1 配置Redis数据库2.4 配置工程日志2.4.1 配置日志2.4.2 日志记录器的使用2.5 配置前端静态文件1
2021-04-07 23:59:20 93
原创 Python函数
函数1.函数简介2.函数的参数2.1 形参和实参2.2 函数的传递方式2.3 不定长参数3.函数的返回值4.文档字符串5.函数的作用域6.命名空间7.递归函数8.高阶函数8.1 闭包1.函数简介函数也是一个对象(对象是内存中专门用来存储数据的一块区域)函数可执行代码,也可以调用语法def 函数名([形参1,形参2,形参3....]): 代码块【注意】:函数名必须符合标识符的规范(可以包含字母、数字、下划线但是不能以数字开头)区别一下函数对象与函数调用:print是函数对象
2021-04-01 21:14:07 205 1
原创 Django框架之cookie和session--12
Django中cookie和session的相关配置与操作1.cookie和session1.1 cookie1.2 session1.3 cookie和session使用2.在django中操作cookie和session2.1 设置cookie2.2 删除cookie2.3 获取cookie2.4 操作session2.5 修改session的存储机制3.【总结】1.cookie和session1.1 cookie在网站中,http请求是无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第
2021-04-01 00:00:44 67
原创 Django框架之文件处理--11
文件上传与上下文处理器1.文件上传1.1 前端HTML代码实现1.2 后端的代码实现1.3 使用模型来处理上传的文件1.4 指定MEDIA_ROOT和MEDIA_URL1.5 限制上传的文件拓展名1.6 上传图片1.7 文件上传示例:2.上下文处理器2.1 上下文处理器简介2.2 自定义上下文处理器1.文件上传1.1 前端HTML代码实现1.在写html代码时,需要填入一个form标签,然后在这个form标签中指定enctype=“multipart/form-data”,一定要指定这个enctype
2021-03-31 23:21:41 116
原创 Django框架之表单验证--10
表单验证数据1.表单1.1 HTML中的表单1.2 Django中的表单1.3 Django中表单使用流程2.常用的Field2.1 CharField2.2 EmailField2.3 FloatField2.4 IntegerField2.5 URLField3.常用验证器4.自定义验证5.提取错误信息6.ModelForm6.1 自定义错误消息6.2 save方法1.表单1.1 HTML中的表单单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器使用的是Django还是其他语
2021-03-31 18:16:46 55
原创 Django框架之高级视图--09
高级视图021.类视图1.1 View1.2 TemplateView1.3 ListView1.4 Paginator和Page类1.4.1 Paginator常用属性和方法1.4.2 Page常用属性和方法1.5 分页示例2.错误处理2.1 常见的错误码2.2 错误处理的解决方案1.类视图Django除了使用函数作为视图,也可以使用类作为视图。使用类视图即可使用类的一些特性,比如继承等。1.1 Viewdjango.views.generic.base.View是主要的类视图,所有的类视图都是继
2021-03-30 16:10:31 59
原创 Django框架之高级视图--08
高级视图1.Django请求方法1.1 常用的请求method1.2 限制请求装饰器2.页面重定向2.1 重定向3.HttpRequest对象3.1 WSGIRequest对象3.2 WSGIRequest对象常用属性3.3 WSGIRequest对象常用方法4.HttpResponse对象4.1 常用属性4.2 常用方法4.3 JsonResponse类1.Django请求方法1.1 常用的请求method1.GET请求:GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态
2021-03-30 14:42:37 63
原创 Django框架之数据库ORM--07
数据库QuerySet与数据迁移1.QuerySet API2.QuerySet的方法3. 将QuerySet转换为SQL去执行4.迁移命令1.QuerySet API通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager这个类是一个“空壳”的类,本身是没有任何的属性和方法的。它的方法全部都是通过Python动态添加的方式,从QuerySet类中拷贝过来的,如下图:
2021-03-29 15:59:58 79
原创 Django框架之数据库查询--06
数据库ORM查询1.查询操作1.1 查询条件2.比较运算3.聚合函数3.1 聚合函数的使用3.1.1 Avg:求平均值3.1.2 Count:求个数。3.1.3 Max和Min:求最大与最小值3.1.4 Sum:求和3.2 aggregate和annotate的区别4.F表达式和Q表达式4.1 F表达式4.2 Q表达式1.查询操作查询是数据库操作中一个非常重要的技术,一般就是使用filter、exclude以及get三个方法来实现。可以在调用这些方法的时候传递不同的参数来实现查询需求,在ORM层面,这些
2021-03-29 00:16:13 83 1
原创 Django框架之数据库ORM--05
数据库ORM模型1.模型常用属性1.1 常用字段1.2 Field的常用参数1.3 模型中Meta配置2.外键与表2.1 外键与表的关系2.2 外键删除操作1.模型常用属性1.1 常用字段AutoField映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。如果你想指定一个其他名字的并且具有自动增长的主键,使用AutoField也是可以的。 aid = models.AutoField(primary_key=
2021-03-27 23:04:27 79
原创 Django框架之数据库ORM--04
数据库ORM1.Django操作数据库1.1 安装MySQL驱动程序1.2 Django配置连接数据库1.3 在Django中操作数据库1.4 Python DB API下规范下cursor对象常用接口2.ORM模型2.1 为什么要使用ORM模型2.2 ORM模型介绍2.3 ORM优点2.4 创建ORM模型2.5 映射模型到数据库中3.ORM的增删改查3.1 先创建模型并映射数据3.2 添加数据3.3 查询数据3.4 删除数据3.5 修改数据1.Django操作数据库1.1 安装MySQL驱动程序使用
2021-03-26 23:46:15 88
原创 Django框架之URL与视图02
URL与视图1.视图2.URL映射3.URL中添加参数4.URL模块化5.url命名与反转5.1 应用命名空间和实例命名空间5.2 URL反转传递参数5.3 指定默认的参数5.4 re_path函数1.视图视图一般都写在app的views.py中。并且视图的第一个参数永远都是request(一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图中,一般是完成逻辑相关的操作。比如这个请求是添加一篇博客,那么可以通过request来接收到这些数据,然后存
2021-03-26 16:59:12 133
原创 Django框架之模板03
Django框架之模板1. 模板介绍1.1 DTL与普通的HTML文件的区别1.2 渲染模板1.2.1 方式一1.2.2 方式二1.3 模板查找路径的配置2.模板变量2.1 示例3. 模板标签3.1 if标签3.2 for...in...标签3.3 for...in...empty标签3.4 url标签4.模板过滤器4.1 add4.2 cut4.3 date4.4 default4.5 其他一些常用过滤器4.6 简单示例5.模板结构优化5.1 引入模板5.2 模板继承6.加载静态文件1. 模板介绍视图
2021-03-26 16:12:11 58
原创 Django框架介绍与环境搭建01
一、Django框架之前导知识1.1、虚拟环境的三种配置方式1.1.1、为什么要配置虚拟环境到目前为止,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样会出现一个问题,如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同
2021-03-16 18:03:42 163 1
原创 Flask框架之类视图、蓝图与子域名06
Flask框架之类视图、蓝图与子域名06一、类视图1.标准类视图2.基于调度方法的视图二、蓝图1.基本使用2.调用静态文件3.调用模板文件三、子域名1.如何构建子域名一、类视图之前我们接触的视图都是函数,所以一般简称视图函数。其实视图也可以基于类来实现,简称类视图。类视图的好处是支持继承,但是类视图不能跟函数视图一样,因为写完类视图还需要通过app.add_url_rule(url_rule,view_func)来进行注册。1.标准类视图标准类视图是继承自flask.views.View,并且在子类
2021-01-14 00:56:26 89
原创 Flask框架之模板继承与案例05
Flask框架之模板继承与案例05一,模版继承二,静态文件的配置1.这里列举一个小例子:三,模版案例(制作豆瓣评分页面)1.效果图:2.数据准备:一,模版继承Flask中的模板可以继承,通过继承可以把模板中许多重复出现的元素抽取出来,放在父模板中,并且父模板通过定义block给子模板开一个口,子模板根据需要,再实现这个block:{% block %}{% endblock %}假设现在有一个base.html这个父模板:<!DOCTYPE html><html lang=
2021-01-10 18:14:06 154
原创 Flask框架之语句续集(import、include、set)04
Flask框架之语句续集(import、include、set)04一,宏二,import语句1.导入宏的例子1.1 from...import...形式1.2 import...as...形式三,include语句四,set语句一,宏模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量。<!DOCTYPE html><html lang="en"><head>
2021-01-10 01:03:12 67
原创 Flask之模板过滤器与控制语句03
Flask之模板过滤器与控制语句一,模板二, Flask渲染Jinja模板三,Jinja2模版过滤器1.内置过滤器2.自定义过滤器四,控制语句一,模板模板是一个web开发必备的模块。因为我们在渲染一个网页的时候,并不是只渲染一个纯文本字符串,而是需要渲染一个有富文本标签的页面。这时候我们就需要使用模板了。在Flask中,配套的模板是Jinja2,Jinja2的作者也是Flask的作者。这个模板非常的强大,并且执行效率高。以下对Jinja2做一个简单介绍!二, Flask渲染Jinja模板要渲染一个模
2021-01-09 16:49:46 81
原创 Flask之URL与视图02
Flask之URL与视图01一,URL与函数的映射二,构造URL(url_for)三,URL末尾的斜杠四,指定HTTP方法五,重定向六,关于响应(Response)一,URL与函数的映射一个URL要与执行函数进行映射,使用的是@app.route装饰器。@app.route装饰器中,可以指定URL的规则来进行更加详细的映射,比如现在要映射一个文章详情的URL,文章详情的URL是/article/id/,id有可能为1、2、3…,那么可以通过以下方式from flask import Flask,req
2021-01-08 16:02:51 69
原创 Flask之虚拟环境介绍与简介01
Flask虚拟环境与简介一、虚拟环境介绍1.虚拟环境和系统环境的区别2.虚拟环境的必要性3.虚拟环境的安装步骤添加一个系统环境变量pip install pipenv进入到你的项目文件夹中 pipenv shell来到pycharm中设置虚拟环境pipfile和pipfile.lock二、Flask简介1.简介2.第一个flask程序3.设置debug模式4.配置文件一、虚拟环境介绍1.虚拟环境和系统环境的区别有时候我们安装了一个Python库,但在Pycharm中却不能使用,这是为什么呢?原因
2021-01-07 18:49:08 117
原创 换源安装网站
背景:最近国内下载安装pip的速度异常的慢,超时情况出现!原因:默认pip的镜像下载地址链接速度慢。解决方案:通过跟换下载的镜像地址来提高速度。阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban) http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
2020-12-24 23:32:46 410
原创 迭代、生成器、yield三者之间的联系
目录迭代生成器(Generator)yield用普通函数模拟生成器函数的效果1 迭代当创建一个列表对象后,可以一个接一个读取列表中的值,这个过程就叫做迭代。 mylist = [1, 2, 3] for i in mylist: print(i, end = ' ')mylist对象是可迭代的。在创建列表时,可以使用列表推导表达式,所以从直观上看,列表是可迭代的。 mylist = [x*x for x in range(3)] for i in mylist:
2020-12-08 15:46:34 94
原创 小试--天气预报
需求分析:爬取全中国所有城市以及对应的温度用到的知识点:a: BeautifulSoup 、html5lib、lxmlb:安装:1.pip install lxml2.pip install bs43.pip install html5lib分析网页:解析网页,一层一层拿取数据标签,先获取conMidtab难点在于直辖市和省份的问题,可通过判断下标索引值来取第1个值:港澳台页面源码的问题:可用‘html5lib’替换‘lxml’,两者的功能对比自行百度# 需..
2020-12-08 14:23:19 103
原创 爬取百度图片
##菜鸟爬虫的第一篇文章,大佬勿喷。# 瀑布流的数据 index --> flip 传统页面呈现数据import requestsimport reimport urllib.parse# 用户输入,编码kw = input('请输入所搜图片名称:')key = urllib.parse.quote(kw) baseurl = 'https://image.baidu.com/search/flip?tn=baiduimage&ps=1&ct=201326592&a
2020-11-30 23:19:42 196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人