自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

花城的博客

是本人存放笔记的地方啦

  • 博客(148)
  • 收藏
  • 关注

原创 DjangoWeb框架基础-目录

django简介、MVC及MTV设计模式、创建项目和app并启动

2021-09-15 14:04:24 267

原创 前端基础-目录

HTML CSS JavaScript bootstrap jquery vue 前端基础

2021-08-23 09:51:39 175

原创 python3-语法目录

python3基础语法、面向对象、高级特性、标准库

2021-06-17 17:55:54 411

原创 python 异步编程:协程与 asyncio

文章目录一、协程(coroutine)1.1 协程的概念1.2 实现协程的方式二、asyncio 异步编程2.1 事件循环2.2 快速上手2.3 运行协程2.4 await 关键字2.5 可等待对象2.5.1 协程2.5.2 任务(Task)2.5.3 asyncio.Future三、concurrent.futures.Future(补充)3.1 爬虫案例(asyncio+不支持异步的模块)四、asyncio 异步迭代器五、asyncio 异步上下文管理六、Uvloop七、实战案例7.1 异步Redis7

2022-03-05 15:43:31 2023

原创 Python ORM框架:SQLAlchemy 的基础用法

文章目录一、SQLAlchemy 介绍1.1 ORM 的概念1.2 SQLAlchemy介绍1.3 架构1.4 异步1.5 安装二、SQLAlchemy 快速入门2.1 创建配置(可选)2.2 创建引擎和获取、关闭连接2.3 创建 ORM 模型2.4 创建会话2.5 创建和删除表2.6 新增数据2.7 查询数据2.8 修改数据2.9 删除数据三、多表操作3.1 一对多3.2 多对多一、SQLAlchemy 介绍1.1 ORM 的概念ORM全称 Object Relational Mapping(对象关

2022-02-18 20:43:13 1960

原创 Web服务器:Nginx 的介绍与快速入门

文章目录一、Nginx 介绍1.1 反向代理1.2 负载均衡1.3 动静分离二、安装 Nginx (Ubuntu 20.04下)三、Nginx 常用命令四、Nginx 配置简介五、配置反向代理5.1 简单的反向代理5.2 根据请求路径转发到不同的服务器六、配置负载均衡七、配置动静分离一、Nginx 介绍Nginx 是一个开源、快速、轻量级和高性能的 web 服务器,可直接作为静态网页服务器使用。它是用 c 语言实现的,内存占用少,启动极快,高并发能力强,官方数据测试表明它能够支持高达50000个并发连接

2022-02-15 14:33:16 1522

原创 分布式文件存储数据库:MongoDB 快速入门

文章目录一、MongoDB 简介1.1 MongoDB 与 MySQL 比较1.2 应用场景二、Ubuntu20.04 下安装和卸载 MongoDB 5.02.1 安装2.2 运行2.3 卸载三、数据库操作四、集合操作五、文档操作5.1 插入文档5.2 删除文档5.3 更新文档5.4 查询文档5.5 排序5.6 分页5.7 计算文档数5.8 去重5.9 $type 操作符5.10 聚合查询六、索引6.1 原理6.2 操作6.3 复合索引七、副本集(Replica Set)7.1 主从复制7.2 副本集搭建

2022-02-12 15:45:09 1543

原创 分布式搜索引擎:Elasticsearch 快速入门

文章目录一、Elasticsearch介绍1.1 介绍1.2 安装(Ubuntu 20.04)1.3 安装 Kinaba (官方客户端,可选)1.4 核心概念1.5 与 MySQL 对比二、反向索引原理三、ES 安装插件3.1 离线安装3.2 在线安装四、ES 操作4.1 索引操作4.2 映射操作4.2.1 字段类型4.2.2 映射参数4.2.3 映射操作4.3 文档操作4.4 文档查询4.4.1 全文查询4.4.2 词语级别查询4.4.3 布尔查询4.4.5 过滤查询4.5 排序4.6 分页4.7 高亮显

2022-02-08 11:40:30 1302

原创 GO——函数、包管理、模块(modules)

文章目录一、空白标识符(下划线)二、函数2.1 函数的定义与调用2.2 匿名函数2.3 函数返回函数2.4 闭包函数三、装饰器四、类型重命名五、包管理5.1 可见性5.2 init 函数六、模块(modules)一、空白标识符(下划线)go 中_是一个特殊的标识符,用来忽略结果。它可以避免变量被定义,却没被使用时的报错。在 import 中的作用:如果只是想运行包内所有文件中的init()函数,而不需要导入包,则可以:import _ "./hello" // hello 是包名它只

2022-02-03 22:11:28 1131

原创 GO——开发环境的搭建、变量、常量和数据类型

文章目录一、GO 语言介绍二、开发环境搭建2.1 安装(Ubuntu)2.2 Go 模块代理二、Hello,world!2.1 go 命令2.2 注释2.3 Hello,world!三、变量四、基本数据类型4.1 整型4.2 浮点型4.3 复数类型4.4 布尔类型4.5 字符串类型4.5.1 字符串转义符4.5.2 多行字符串4.6 byte 和 rune 类型五、常量的定义本文内容只适合有其他编程语言基础的同学,不适合小白。一、GO 语言介绍Go 也叫做 Golang,是Google公司2009

2022-02-02 22:18:50 618

原创 消息队列:RabbitMQ安装和快速入门

文章目录一、消息队列1.1 作用1.2 主流消息队列比较二、RabbitMQ的安装2.1 安装2.1.1 Docker 方式2.1.2 原生方式(Ubuntu 20.04)2.2 管理插件的用法三、RabbitMQ快速入门3.1 名词介绍3.2 Hello World!3.3 任务队列(work queue)3.3.1 循环调度3.3.2 消息确认3.3.3 消息持久化3.3.4 公平调度3.4 发布/订阅(Publish/Subscribe)3.4.1 交换器(Exchanges)3.4.2 临时队列3.

2022-02-02 13:32:51 2514 1

原创 django2.2——读写分离

文章目录一、django 读写分离1.1 配置数据库1.2 数据库迁移1.3 指定要使用的数据库1.3.1 手动指定1.3.2 自动指定一、django 读写分离在搭建好 MySQL 的主从后,执行下面的步骤:1.1 配置数据库在 django 的项目配置文件中:DATABASES = { # 主库,django 默认使用 default 中的数据库 'default':{ 'ENGINE': 'django.db.backends.mysql', 'N

2022-01-31 19:24:23 2210

原创 MySQL 8.0——主从同步

文章目录一、MySQL 8.0 主从同步二、MySQL主从搭建2.1 Master 上的操作2.2 Slave 上的操作一、MySQL 8.0 主从同步主从同步的流程(原理):master 将变动记录到二进制日志文件(binary log)中,即配置文件中 log-bin 指定的文件,这些记录叫做二进制日志事件(binary log events);master 将二进制日志文件发送给 slave;slave 通过 I/O 线程读取文件中的内容写到 relay 日志中;slave 执行 rel

2022-01-31 17:43:19 4353 1

原创 Redis高级特性浅解

文章目录一、慢查询日志二、事务(Transactions)2.1 回滚(roll back)2.2 使用 check-and-set 操作实现乐观锁三、发布/订阅(Pub/Sub)四、位图(Bitmaps)五、HyperLogLogs六、GEO七、持久化(Persistence)7.1 RDB(Redis Database)7.1.1 优缺点7.1.2 使用方法7.2 AOF(Append Only File)7.2.1 优缺点7.2.2 使用方法7.2.3 AOF 重写7.3 如何选择持久化方式八、主从复

2022-01-31 15:13:14 1783

原创 容器:docker——使用 dockerfile 构建镜像和使用 docker compose 管理镜像

文章目录一、使用 Dockerfile 构建镜像1.1 常用命令1.2 使用脚本创建镜像二、上传镜像到 Docker Hub三、搭建私有仓库四、docker compose 的安装和使用4.1 Ubuntu 安装 docker compose4.2 使用示例一、使用 Dockerfile 构建镜像Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。对于开发人员:可以为开发团队提供一个完全一致的开发环境;对于测试人员:可以直接拿开发时所构建的镜像或者通

2022-01-28 17:17:19 2502

原创 容器:docker——快速入门

文章目录一、docker 简介1.1 什么是虚拟化(Virtualization)1.2 什么是 docker1.3 容器与传统虚拟机的区别1.4 docker 的架构二、在 Ubuntu 上安装 docker2.1 安装和换源2.2 以非 root 用户管理 Docker(可选)三、快速入门3.1 镜像操作3.2 容器操作3.3 宿主机与容器交互3.4 容器的备份与恢复3.4.1 备份3.4.2 恢复一、docker 简介1.1 什么是虚拟化(Virtualization)虚拟化是一种计算机资源的

2022-01-27 21:21:26 1931

原创 flask web 框架——可插拔视图(基于类的视图 CBV)

文章目录一、基本原理二、指定允许的 HTTP 方法三、基于 HTTP 方法调度四、装饰可插拔视图五、用于 API 的方法视图可插拨视图基于类实现视图,其灵感来自于 Django 的 CBV(基于类的视图)。一、基本原理假设有一个函数用于从数据库中载入一个对象列表并在模板中渲染:@app.route('/users/')def show_users(page): users = User.query.all() # 通过 ORM 加载数据 return render_templ

2022-01-26 09:07:02 516

原创 flask web 框架——配置管理

文章目录一、配置的基础用法二、环境和调试特性三、内置配置变量四、使用配置文件4.1 使用 Python 配置文件4.2 使用其他文件来配置五、使用环境变量来配置不管是什么应用,总是需要一些配置来管理应用的行为。并且,根据应用环境的不同,所需的配置也是不同的。比如:调试模式的开关、密钥以及其他依赖于环境的东西。Flask 的设计思路是在 app 开始时载入配置。你可以在代码中直接硬编码写入配置, 这对于许多小应用来说是可行的,但是对于中、大型项目就不太合适了。对此,flask 提供了更好的配置管理方法。

2022-01-26 00:15:00 1041

原创 flask web 框架——蓝图(Blueprint)

文章目录一、蓝图(Blueprint)的概念二、蓝图的使用三、嵌套蓝图四、蓝图资源4.1 蓝图资源文件夹4.2 静态文件4.3 模板五、创建 URL六、蓝图错误处理器一、蓝图(Blueprint)的概念在小型项目中,我们可以将代码写在一个文件中,但是到了中大型项目中,这么做就不合适了。所以,我们需要将代码分成多个模块或者包,然后导入使用。但这么做很容易导致循环导入问题,所以,Flask 引入了**蓝图(Blueprint)**的概念。蓝图是一种组织项目中文件或代码的方式。与把视图和其他代码直接注册到a

2022-01-25 13:22:09 3828

原创 flask web 框架——消息闪现

文章目录一、消息闪现二、闪现消息的类别三、过滤闪现消息一、消息闪现Flask 通过闪现系统来提供了一个简单易用的反馈方式。闪现系统的基本工作原理是:在请求结束时记录一个消息,提供且只提供给下一个请求使用。比如有这么个需求:A页面出了错后跳转到B页面,并在B页面展示A页面的错误信息。这个时候,就可以通过消息闪现将错误信息传递给B页面。注意!!!浏览器会限制 cookie 的大小,有时候网络服务器也会。这样如果消息比会话 cookie 大的话,那么会导致消息闪现静默失败。flash()用于闪现(可

2022-01-24 18:04:24 722

原创 python 微型 web 框架——flask 快速入门

文章目录一、Flask简介1.1 安装1.2 依赖1.3 可选依赖1.4 安装 Flask二、快速入门2.1 最简单的 Flask 应用2.2 调试模式2.3 HTML 转义2.4 路由2.4.1 变量规则2.4.2 重定向行为2.4.3 URL 构建2.4.4 HTTP 方法2.5 静态文件2.6 渲染模板2.7 访问请求数据2.7.1 本地环境2.7.2 请求对象(request)2.7.3 文件上传2.7.4 Cookies2.8 重定向和错误2.9 响应2.9.1 JSON 格式的 API2.10

2022-01-23 20:08:55 1582

原创 Ubuntu:制作系统服务和进程管理

文章目录一、Ubuntu 启动过程1.1 SysVinit1.2 Upstart1.3 Systemd二、制作系统服务2.1 systemctl命令2.2 开机自启动三、进程管理3.1 查看进程3.2 杀死进程3.3 将进程放入后台运行一、Ubuntu 启动过程我们不去管计算机启动后加载 BIOS、读取 MBR 等操作,直接看加载内核后的初始化过程。Linux init 系统主要有三种:SysVinit:Ubuntu 6.10 及之前的版本使用的init 系统;Upstart:Ubuntu 从

2022-01-22 15:53:49 1784

原创 Linux 必知必会

文章目录一、Linux 简介1.1 Unix 与 Linux 和 Mac OS 的关系1.2 Linux 操作系统1.3 Linux 发行版二、Shell 的使用2.1 什么是 Bash Shell2.2 shell 提示符2.3 shell 命令基础2.4 配置环境变量2.5 命令别名2.6 快捷键三、Linux 系统目录结构四、管道与重定向4.1 管道4.2 重定向五、目录和文件5.1 绝对路径和相对路径5.2 目录和文件操作5.3 文件的属性六、硬链接和软链接6.1 硬链接(Hard Link)6.2

2022-01-21 19:14:23 2538

原创 Vim 必知必会

文章目录一、Vi/Vim 的简介二、Vim 的使用2.1 vim 的三种工作模式2.2 一般模式的使用2.3 插入模式的使用2.4 底行模式的使用一、Vi/Vim 的简介vim 是 Linux 下的一个文本编辑器,和 windows 下的记事本是同一类软件,但比记事本强大得多。我们通过终端编辑一些文件的时候,vim 需要手动安装,而 Linux 自带了一个 vi 编辑器,vim 就是 vi 的加强版,多了语法高亮,其他功能基本没有区别。安装 vim :sudo apt install vim使

2022-01-20 20:54:16 1651

原创 爬虫框架:Scrapy 快速入门

文章目录一、Scrapy简介1.1 示例代码1.2 示例代码的运行流程二、安装Scrapy2.1 Ubuntu下安装2.2 Windows下安装2.3 Mac OS下安装三、Scrapy 快速入门3.1 创建 scrapy 项目3.2 编写 spider3.3 运行爬虫项目3.3.1 start_requests 方法的快捷方式3.4 数据提取3.4.1 提取名言和作者3.4.2 在 spider 中提取数据3.5 存储提取的数据3.6 追踪链接3.7 创建请求的快捷方式3.8 更多示例和模式3.9 使用

2022-01-17 17:49:04 2437 1

原创 浏览器自动化:Selenium的使用

文章目录一、Selenium简介二、入门指南2.1 安装和使用驱动2.1.1 安装2.1.2 用驱动的三种方式2.2 打开和关闭浏览器2.3 浏览器操作2.4 获取浏览器信息2.5 代码与浏览器状态的同步2.5.1 显式等待2.5.2 隐式等待2.6 查找元素2.6.1 查找单个元素2.6.2 查找多个元素2.6.3 通过元素查找元素2.7 操作元素2.8 获取元素内容三、隐藏浏览器界面注意!本文中演示使用的编程语言为python,而浏览器为chrome。一、Selenium简介Selenium

2022-01-16 16:54:53 1379

原创 解析HTML文档:Beautiful Soup4快速入门

文章目录一、Beautiful Soup4简介1.1 Beautiful Soup4简介1.2 Beautiful Soup4快速入门二、安装Beautiful Soup4和解析器2.1 安装Beautiful Soup42.2 安装解析器(可选)三、Beautiful Soup4进阶3.1 实例化BeautifulSoup对象3.2 Tag对象及其属性3.3 BeautifulSoup对象四、遍历文档树4.1 获取tag对象4.2 获取子节点4.3 获取tag内部的字符串4.4 获取父节点4.5 获取兄弟

2022-01-15 17:43:20 913

原创 爬虫的概念及requests库的使用

文章目录一、什么是爬虫1.1 爬虫1.2 反爬虫1.3 爬虫协议(Robots协议)二、requests库三、requests库快速入门3.1 pip安装requests3.2 发送请求3.3 传递参数3.4 响应内容3.4.1 二进制响应内容3.4.2 JSON响应内容3.5 原始响应内容3.6 定制请求头3.7 复杂的 POST 请求3.8 使用POST提交文件3.9 响应状态码3.10 响应头3.11 Cookie3.12 重定向与请求历史3.13 超时3.14 错误与异常一、什么是爬虫1.1 爬

2022-01-14 18:02:02 370

原创 任务队列:celery快速入门及django中celery的用法

文章目录一、celey的简介1.1 celery的工作机制1.2 安装celery(5.2版本)二、celery快速入门2.1 选择broker2.2 celery的简单使用2.2.1 创建app2.2.2 运行celery worker 服务2.2.3 调用任务2.2.4 保存结果2.3 配置三、celery进阶说明3.2 运行worker3.3 停止worker3.4 后台运行3.5 --app(简写为-A)的参数3.6 程序调用3.7 执行延迟任务3.8 执行定时任务四、django中使用celery

2022-01-12 14:16:12 2462 1

原创 Redis的基础与django使用redis

文章目录一、Redis的简介和安装1.1 Redis简介1.2 安装Redis二、python操作redis2.1 普通连接2.2 连接池2.3 redis库的操作三、Redis基本操作3.1 Key的操作3.2 Value的操作(常用类型)3.2.1 字符串(Strings)类型3.2.2 哈希(Hashes)类型3.2.3 链表(Lists)类型3.2.4 集合(Sets)类型3.2.5 有序集合(Sorted Sets)类型四、管道(Pipelining)五、在django中使用redis一、Red

2022-01-11 22:12:54 6291 4

原创 版本控制与GIT的基础操作

文章目录一、git的由来1.1 版本控制(Revision control)1.2 集中式和分布式1.2.1 集中式1.2.2 分布式二、git的安装与配置2.1 Ubuntu下安装2.2 windows安装2.3 配置三、git的仓库结构四、git基础4.1 提交操作4.2 撤销操作4.3 忽略文件五、分支管理六、远程仓库6.1 远程仓库基础6.2 使用SHH协议连接远程仓库6.2.1 生成公钥6.2.2 添加公钥七、冲突解决八、标签管理一、git的由来1.1 版本控制(Revision contro

2022-01-09 09:42:31 745

原创 同源策略与CORS(跨源资源共享)以及django项目支持CORS

文章目录一、同源策略/SOP(Same origin policy)1.1 源(origin)的定义1.2 同源的含义1.3 同源策略二、CORS(跨源资源共享)2.1 预检请求2.2 请求分类2.3 简单请求2.4 非简单请求三、使Django项目支持CORS3.1 自定义中间件3.2 使用django-cors-headers3.2.1 安装3.2.2 配置一、同源策略/SOP(Same origin policy)1.1 源(origin)的定义以下三个部分共同构成了一个源:协议:如htt

2022-01-04 21:23:17 3440

原创 django2.2——18. 缓存框架

文章目录一、Django 缓存框架二、设置缓存2.1 Memcached2.1.1 准备工作2.1.2 设置Memcached2.1.3 使用多个Memcached服务器2.1.4 Memcached的缺点2.2 数据库缓存创建缓存表2.3 文件系统缓存2.4 本地内存缓存2.5 虚拟缓存(用于开发模式)2.6 自定义缓存后端2.7 缓存参数三、缓存站点四、缓存视图在路由中指定视图缓存五、缓存模板片段一、Django 缓存框架动态网站在收到每一个用户请求时,都会执行查询数据库、渲染模板等操作,这些操作比

2021-12-31 15:34:56 644 2

原创 Django REST Framework——8. JWT

文章目录一、Token与Session1. Session的弊端2. Token认证机制二、JWT的概念及构成三、Djangorestframework-simplejwt1. 安装与配置2. 基本使用方法3. 常用配置4. 自定义生成的Token内容5. JWT解码一、Token与Session1. Session的弊端我们之前已经学过session,它是将用户的敏感信息保存到服务端,而只给客户端一个sessionid(保存为cookie)作为与服务器端session交互的凭证。在用户通过验证并拿到

2021-12-30 21:29:34 3096

原创 Django REST Framework——7. 分页与文档生成

文章目录一、分页(Pagination)1.1 内置分页样式1.1.1 PageNumberPagination1.1.2 LimitOffsetPagination1.1.3 CursorPagination1.2 设置分页样式1.3 修改分页样式1.4 APIView子类视图调用分页二、自动生成API文档2.1 安装与设置2.2 简单配置一、分页(Pagination)DRF提供了支持自定义的分页功能,可以帮助我们将查询到的结果集分成若干页。并且还提供了前、后一页的链接:将分页链接作为响应内容的

2021-12-26 14:49:24 749

原创 Django REST Framework——6. 认证、权限、限流、过滤、排序及异常处理

文章目录一、认证(Authentication)1.1 身份认证的流程1.2 自定义认证类1.3 设置认证方案二、权限(Permissions)2.1 权限检查流程2.2 对象级别的权限2.3 自定义权限补充说明2.4 设置权限三、限流(Throttling)3.1 限流检查流程3.2 内置限流3.2.1 AnonRateThrottle3.2.2 UserRateThrottle3.3 设置限流四、过滤(Filtering)4.1 根据当前用户进行过滤4.2 根据URL进行过滤4.3 使用第三方djang

2021-12-21 18:20:20 1426

原创 Django REST Framework——5. 视图与路由

文章目录一、APIView类二、GenericAPIView类2.1 常用属性2.2 常用方法三、Mixin类四、通用的具体视图类五、视图集和路由器5.1 视图集(ViewSet)5.2 路由器(Router)5.2.1 使用方法5.2.2 DefaultRouter类5.3 ModelViewSet类基于类的视图的一个关键好处是:它们允许您组合一些可重用的行为。而DRF通过提供大量预构建的视图来利用这一点,为我们提供了一些常用的模式,我们要做的就是选择合适的视图类进行继承即可。一、APIView类D

2021-12-18 20:26:33 1064

原创 Django REST Framework——4. 请求与响应

文章目录一、请求对象(Request Object)常用属性二、响应对象(Response Object)常用属性三、状态码(Status codes)3.1 使用方法3.2 辅助函数四、配置默认Response渲染器4.1 全局配置4.2 局部配置4.3 渲染器类一、请求对象(Request Object)DRF传入视图的request对象不再是Django默认的HttpRequest对象,而是DRF提供的扩展后的request对象。Request对象的核心功能是request.data属性,它与re

2021-12-17 16:30:27 1150

原创 Django REST Framework——3. 序列化器(Serializer)

文章目录一、序列化与反序列化1.1 序列化过程1.2 反序列化过程二、字段类型及参数2.1 常用字段2.2 选项参数2.3 核心参数三、数据校验3.1 is_vaild()方法3.2 局部校验(只涉及一个字段)3.3 全局校验(涉及多个字段)3.4 validators参数四、数据操作4.1 查询单条数据4.2 查询所有数据4.3 新增数据4.4 修改数据4.5 删除数据五、模型类序列化器(Model Serializer)5.1 定义5.2 指定字段5.3 添加额外参数六、SerializerMethod

2021-12-17 11:17:32 2016

原创 Django REST Framework——2. DRF的安装和基本使用方法

文章目录一、DRF的基本使用方法1.1 DRF的安装1.2 DRF的简单使用1.2.1 环境搭建1.2.2 开始使用创建普通模型类创建序列化器编写视图添加url分页(可选)设置1.2.3 测试接口在学习Django REST Framework(DRF)之前,你必须先学会django,本文不会对django相关的内容做太多解释。一、DRF的基本使用方法1.1 DRF的安装使用pip安装Django REST Framework:pip install djangorestframework

2021-12-14 12:04:48 2722

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除