
🔥人工智能
笔记和资料,涉及到深度学习、自动驾驶等领域。
🔥机器人
包括ROS机器人框架笔记。Beginer Friendly

✅Python教程
从0到1,在深入人工智能的全套Python笔记。

❤️经验经历
过往的感悟和思考。发病日记。

✨碎片技术
学习工作中遇到的很赞的技术碎片,整理好了。

✨学习积累
相对于碎片技术的,已经沉淀为自己的资本的内容。
Numpy 中的 Ndarray
numpy概述
Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力。
Numpy是其它数据分析及机器学习库的底层库。
Numpy完全标准C语言实现,运行效率充分优化。
Numpy开源免费。
numpy历史
1995年,Numeric,Python语言数值计算扩充。
2001年,Scipy->Numarray,多维数组运算。
2005年,Numeric+Numarray->Numpy。
2006年,Numpy脱离Scipy成为独立的项目。
numpy的核心:多维数组
代码简洁:减少Python代码中的循环。
底层实现:厚内核(C)+薄接口(Python),保证性能。
ndarray 数组用np.ndarray类的对象表示n维数组
123import numpy as npary = np.array([1, 2, 3, 4, 5, 6])print(type(ary)) # <class 'numpy.ndarray'>
内存中的ndarray对象元数据(metadata)
存储对目标数组的 ...
【Django】 开发:补充知识
有需要上网现查现学的东西。
分页
分页是指在web页面有大量数据需要显示,为了阅读方便在每个页页中只显示部分数据。
好处:
方便阅读
减少数据提取量,减轻服务器压力。
Django提供了Paginator类可以方便的实现分页功能
Paginator类位于django.core.paginator 模块中。
Paginator对象
负责分页数据整体的管理
对象的构造方法
paginator = Paginator(object_list, per_page)
参数
object_list 需要分类数据的对象列表
per_page 每页数据个数
返回值:
Paginator的对象
Paginator属性
count:需要分类数据的对象总数
num_pages:分页后的页面总数
page_range:从1开始的range对象, 用于记录当前面码数
per_page 每页数据的个数
Paginator方法
page(number)
参数 number为页码信息(从1开始)
返回当前number页对应的页信息
如果提供的页码不存在,抛出InvalidPa ...
【Django】 开发:中间件和SDRF扩展知识
中间件 Middleware
中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变 Django 的输入或输出。
每个中间件组件负责做一些特定的功能。例如,Django 包含一个中间件组件 AuthenticationMiddleware,它使用会话将用户与请求关联起来。
中间件类:
中间件类须继承自 django.utils.deprecation.MiddlewareMixin类
中间件类须实现下列五个方法中的一个或多个:
def process_request(self, request): 执行路由之前被调用,在每个请求上调用,返回None或HttpResponse对象
def process_view(self, request, callback, callback_args, callback_kwargs): 调用视图之前被调用,在每个请求上调用,返回None或HttpResponse对象
def process_response(self, request, response): 所有响应返回浏览器 ...
【Django】 开发:Cookie、Session和缓存
cookies 和 session
会话 - 从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次会话
HTTP协议是无状态的,导致会话状态难以保持
试想一下,如果不保持会话状态,在电商网站购物的场景体验?
Cookies和Session就是为了保持会话状态而诞生的两个存储技术
cookies
cookies是保存在客户端浏览器上的存储空间
Chrome 浏览器 可能通过开发者工具的 Application >> Storage >> Cookies 查看和操作浏览器端所有的 Cookies 值
火狐浏览器 可能通过开发者工具的 存储 -> Cookie
cookies 在浏览器上是以键-值对的形式进行存储的,键和值都是以ASCII字符串的形存储(不能是中文字符串)
cookies中的数据是按域存储隔离的,不同的域之间无法访问
cookies 的内部的数据会在每次访问此网址时都会携带到服务器端,如果cookies过大会降低响应速度
在Django 设置浏览器的COOKIE 必须通过 HttpResponse 对象来完成
添加、 ...
【Django】 开发:数据库操作和后台管理
查询数据
数据库的查询需要使用管理器对象进行
通过 MyModel.objects 管理器方法调用查询接口
方法
说明
all()
查询全部记录,返回QuerySet查询对象
get()
查询符合条件的单一记录
filter()
查询符合条件的多条记录
exclude()
查询符合条件之外的全部记录
…
all()方法
方法: all()
用法: MyModel.objects.all()
作用: 查询MyModel实体中所有的数据
等同于
select * from tabel
返回值: QuerySet容器对象,内部存放 MyModel 实例
示例: 1234from bookstore.models import Bookbooks = Book.objects.all()for book in books: print("书名", book.title, '出版社:', book.pub)
在模型类中定义 def __str__(self): 方法可以自定义默认的字符串
1 ...
【Django】 开发:静态文件,应用和模型层
静态文件
什么是静态文件
不能与服务器端做动态交互的文件都是静态文件
如:图片,css,js,音频,视频,html文件(部分)
静态文件配置
在 settings.py 中配置一下两项内容:
配置静态文件的访问路径
通过哪个url地址找静态文件
STATIC_URL = ‘/static/‘
说明:
指定访问静态文件时是需要通过 /static/xxx或 127.0.0.1:8000/static/xxx
xxx 表示具体的静态资源位置
配置静态文件的存储路径 STATICFILES_DIRS
STATICFILES_DIRS保存的是静态文件在服务器端的存储位置
示例:
1234# file: setting.pySTATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"),)
访问静态文件
使用静态文件的访问路径进行访问
访问路径: STATIC_URL = ‘/static/‘
示 ...
JQuery 学了不亏
介绍jQuery是JavaScript的工具库,对原生JavaScript中的DOM操作、事件处理、包括数据处理和Ajax技术等进行封装,提供更完善,更便捷的方法。
使用引入先引入jquery文件,才能使用jquery语法
CDN 有网(备用)
本地文件(常用)
工厂函数 - $()“$()”函数用于获取元素节点,创建元素节点或将原生JavaScript对象转换为jquery对象,返回 jQuery 对象。jQuery 对象实际是一个类数组对象,包含了一系列 jQuery 操作的方法。例如 :
123456//$()获取元素节点,需传入字符串的选择器$("h1")$("#d1")$(".c1")$("body,h1,p")//选择器的特点,与样式选择器一致
原生JavaScript对象与jQuery对象原生JavaScript对象与jQuery对象的属性和方法不能混用。可以根据需要,互相转换 :
原生JavaScript转换jQuery对象 $(原生对象),返回 jQuery 对象
jQuery对象转 ...
【Django】 开发:模板语言
Django的框架设计模式
MVC 设计模式
MVC 代表 Model-View-Controller(模型-视图-控制器) 模式。
作用: 降低模块间的耦合度(解耦)
MVC
M 模型层(Model), 主要用于对数据库层的封装
V 视图层(View), 用于向用户展示结果
C 控制(Controller ,用于处理请求、获取数据、返回结果(重要)
MVC模式如图:
MTV 模式 MTV 代表 Model-Template-View(模型-模板-视图) 模式。这种模式用于应用程序的分层开发
作用: 降低模块间的耦合度(解耦)
MTV
M – 模型层(Model) 负责与数据库交互
T – 模板层(Template) 负责呈现内容到浏览器
V – 视图层(View) 是核心,负责接收请求、获取数据、返回结果
MTV模式如图:
注:MTV的本质还是MVC,可以理解为MVC+T,使用T来辅助展示网站内容。因为网页的C部分很多时候都不大,不太需要拆分出来,所以就变成MTV了。
模板 Templates
什么是模板
模板是可以根据字典数据动态变化的html ...
【Django】 Python Web 框架基础
Django框架的介绍起源&现状
2005年发布,采用Python语言编写的开源web框架
早期的时候Django主做新闻和内容管理的
一个重量级的 Python Web框架,Django 配备了常用的大部分组件
基本配置
路由系统
原生HTML模板系统
视图 view
Model模型,数据库连接和ORM数据库管理
中间件
Cookie & Seesion
分页
数据库后台管理系统admin
Django的用途
网站后端开发
微信公众号、微信小程序等后台开发
基于HTTP/HTTPS协议的后台服务器开发
在线语音/图像识别服务器
在线第三方身份验证服务器等
Django的版本
最新版本:3.0.x
当前教学版本:2.2.12
Django的官网
官方网址: http://www.djangoproject.com
中文文档(第三方):
https://yiyibooks.cn/
Django的安装
查看已安装的版本
123>>> import django>>> print ...
【JavaScript】 Web 相关笔记
DOM节点操作DOM全称为 “Document Object Model”,文档对象模型,提供操作HTML文档的方法。(注:每个html文件在浏览器中都视为一篇文档,操作文档实际就是操作页面元素。)
节点对象JavaScript 会对 html 文档中的元素、属性、文本甚至注释进行封装,称为节点对象,提供相关的属性和方法。
访问节点
元素节点 ( 操作标签)
属性节点(操作标签属性)
文本节点(操作标签的文本内容)
标签属性都是元素节点对象的属性,可以使用点语法访问,例如:
123h1.id = "d1"; //set 方法console.log(h1.id); //get 方法h1.id = null; //remove 方法
注意 :
属性值以字符串表示
class属性需要更名为 className,避免与关键字冲突,例如:h1.className = “c1 c2 c3”;
获取多个DOM元素和控制属性
根据标签名获取元素节点列表
12345var elems = document.getElementsByTagName(& ...
【JavaScript】 基础
JavaScript 概述什么是JavaScriptJS 介绍简称JS,是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行。主要用来实现网页的动态效果,用户交互及前后端的数据传输等。
JS 组成
核心语法 -ECMAScript 规范了JS的基本语法
浏览器对象模型 -BOM Browser Object Model,提供了一系列操作浏览器的方法
文档对象模型 -DOM Document Object Model ,提供了一系列操作的文档的方法
使用方式
元素绑定事件
事件 :指用户的行为(单击,双击等)或元素的状态(输入框的焦点状态等)
事件处理:元素监听某种事件并在事件发生后自动执行事件处理函数。
常用事件:onclick (单击事件)
语法 :将事件名称以标签属性的方式绑定到元素上,自定义事件处理。 12<!--实现点击按钮在控制台输出--><button onclick="console.log('Hello World');">点击</button>
文档内嵌。使用标签书写 ...
CSS 笔记 盒模型和布局方式
CSS 盒模型内容尺寸
一般情况下,为元素设置width/height,指定的是内容框的大小
内容溢出:内容超出元素的尺寸范围,称为溢出。默认情况下溢出部分仍然可见,可以使用overflow调整溢出部分的显示,取值如下:
取值
作用
visible
默认值,溢出部分可见
hidden
溢出部分隐藏
scroll
强制在水平和垂直方向添加滚动条
auto
自动在溢出方向添加可用滚动条
边框边框实现语法:
1border: width style color;
边框样式为必填项,分为:
样式取值
含义
solid
实线边框
dotted
点线边框
dashed
虚线边框
double
双线边框
单边框设置分别设置某一方向的边框,取值:width style color;
属性
作用
border-top
设置上边框
border-bottom
设置下边框
border-left
设置左边框
border-right
设置右边框
网页三角标制作
元素设置宽高为0
统一设置四个方向透明边框
调整 ...
HTML 笔记
Web前端介绍什么是网页网页是基于浏览器的应用程序,是数据展示的载体.
网页的组成
浏览器
代替用户向服务器发请求
接收并解析数据展示给用户
服务器
存储数据
处理并响应请求
协议
规范数据在传输过程中的打包方式
开发前的准备
运行环境:浏览器,设置chrome为默认浏览器,作为网页文件的运行环境。
调试工具:浏览器自带的调试工具,使用快捷键”F12”或右键”检查”打开。
开发工具:不限,选用个人习惯的即可(VSCode、EditPlus、PyCharm等)。
HTML语法介绍HTML介绍超文本标记语言(HyperText Markup Language)浏览器能够识别和解析的语言,通过标签的形式构建页面结构和填充内容
标签标签也称为标记或元素,用于在网页中标记内容
语法:标签使用< >为标志,在< >内部写标签名和标签属性
注释语法:
1<!-- 此处为注释 -->
标签名不区分大小写,推荐小写表示
分类:
双标签:成对出现,包含开始标签和结束标签。例: 123<html><!-- 内容或其他标签 ...
【Python】socket TCP 编程中的三次握手和四次挥手的过程分析
笔记整理,参考见本链接。
:star2:三次握手
:star2:四次挥手
:star2:实现流程
:star2:客户端代码解析12345678910111213141516171819202122232425# socket简单编写:服务端 客户端#服务端import socket # 导入 socket模块serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# socket.AF_INET :表示基于网络# socket.SOCK_STREAM:表示基于TCP协议serv.bind(("127.0.0.1", 8000))# bind(ip地址,端口号---》元祖的形式):绑定在那个计算机上作为服务器serv.listen(5)# listen(n):表示同时接待5个链接,n:控制backlog、即:半链接池;conn, addr = serv.accept()# serv.accept():表示接收到客户端的请求信息,# 此时,服务端会收到:一个tcp链接、客户端ip地址,以元祖形 ...
【Python】高级笔记第七部分:网络并发编程
@ 作者:达内 Python 教学部,吕泽@ 编辑:博主,Discover304
:star2:网络并发模型
:star:网络并发模型概述
什么是网络并发在实际工作中,一个服务端程序往往要应对多个客户端同时发起访问的情况。如果让服务端程序能够更好的同时满足更多客户端网络请求的情形,这就是并发网络模型。
循环网络模型问题循环网络模型只能循环接收客户端请求,处理请求。同一时刻只能处理一个请求,处理完毕后再处理下一个。这样的网络模型虽然简单,资源占用不多,但是无法同时处理多个客户端请求就是其最大的弊端,往往只有在一些低频的小请求任务中才会使用。
:star:多进程/线程并发模型多进程/线程并发模中每当一个客户端连接服务器,就创建一个新的进程/线程为该客户端服务,客户端退出时再销毁该进程/线程,多任务并发模型也是实际工作中最为常用的服务端处理模型。
模型特点
优点:能同时满足多个客户端长期占有服务端需求,可以处理各种请求。
缺点: 资源消耗较大
适用情况:客户端请求较复杂,需要长时间占有服务器。
创建流程
创建网络套接字
等待客户端连接 ...