【Python使用】python高级进阶知识md总结第3篇:静态Web服务器-返回指定页面数据,静态Web服务器-多任务版【附代码文档】

python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:操作系统,虚拟机软件,Ubuntu操作系统,Linux内核及发行版,查看目录命令,切换目录命令,绝对路径和相对路径,创建、删除文件及目录命令,复制、移动文件及目录命令,终端命令格式的组成,查看命令帮助。HTTP 请求报文,HTTP响应报文,搭建Python自带静态Web服务器,静态Web服务器-返回固定页面数据。静态Web服务器-返回指定页面数据,静态Web服务器-多任务版,静态Web服务器-面向对象开发。静态Web服务器-命令行启动动态绑定端口号,html 的介绍,html 的基本结构,vscode 的基本使用,初始常用的 html 标签,资源路径,列表标签,表格标签。表单标签,表单提交,css 的介绍,css 的引入方式,css 选择器。css 属性,JavaScript的介绍,JavaScript的使用方式,变量和数据类型,函数定义和调用,变量作用域,条件语句,获取标签元素。操作标签元素属性,数组及操作方法,循环语句,字符串拼接,定时器,jQuery的介绍,jQuery的用法,jQuery选择器,选择集过滤。选择集转移,获取和设置元素内容,获取和设置元素属性,jQuery事件,事件代理,JavaScript对象,json。ajax,数据库,关系型数据库管理系统。MySQL数据库,数据类型和约束。命令行客户端MySQL的使用,as和distinct关键字,where条件查询,排序,分页查询。ls命令选项,mkdir和rm命令选项,cp和mv命令选项,重定向命令,查看文件内容命令,链接命令,文本搜索命令,查找文件命令。聚合函数,分组查询,连接查询-内连接,连接查询-左连接,连接查询-右连接,连接查询-自连接,子查询。数据库设计之三范式,外键SQL语句的编写,演练-分组和聚合函数的组合使用,将查询结果插入到其它表中,使用连接更新表中某个字段数据。创建表并给某个字段添加数据,修改goods表结构,PyMySQL的使用。事务,索引。闭包,闭包的使用,修改闭包内使用的外部变量,装饰器,装饰器的使用,通用装饰器的使用,多个装饰器的使用。带有参数的装饰器,类装饰器的使用,web框架概述,框架程序开发,模板替换功能开发。路由列表功能开发,装饰器方式的添加路由,显示股票信息页面的开发,个人中心数据接口的开发,ajax请求数据渲染个人中心页面。logging日志,property属性。with语句和上下文管理器,生成器的创建方式。深拷贝和浅拷贝,正则表达式的概述,re模块介绍,匹配单个字符。压缩和解压缩命令,文件权限命令,获取管理员权限的相关命令,用户相关操作,用户组相关操作,远程登录、远程拷贝命令。匹配多个字符,匹配开头和结尾,匹配分组。编辑器 vim,软件安装,软件卸载,多任务的介绍,进程,多进程的使用。获取进程编号,进程执行带有参数的任务,进程的注意点,线程,多线程的使用。线程执行带有参数的任务,线程的注意点,互斥锁。死锁,进程和线程的对比,IP 地址的介绍,端口和端口号的介绍,TCP 的介绍,socket 的介绍。TCP 网络应用程序开发流程,TCP 客户端程序开发,TCP服务端程序开发,TCP网络应用程序的注意点。案例-多任务版TCP服务端程序开发,socket之send和recv原理剖析,HTTP 协议,URL,查看HTTP协议的通信过程。
全套笔记资料代码移步: 前往gitee仓库查看
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


压缩和解压缩命令
学习目标
- 能够使用tar命令完成文件的压缩和解压缩
1. 压缩格式的介绍
Linux默认支持的压缩格式:
- .gz
- .bz2
- .zip
说明:
- .gz和.bz2的压缩包需要使用tar命令来压缩和解压缩
- .zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩
压缩目的:
- 节省磁盘空间
2. tar命令及选项的使用
|命令|说明| |---|---| |tar|压缩和解压缩命令|
tar命令选项:
|选项|说明| |---|---| |-c|创建打包文件| |-v|显示打包或者解包的详细信息| |-f|指定文件名称, 必须放到所有选项后面| |-z|压缩或解压缩(.gz)| |-j|压缩或解压缩(.bz2)| |-x|解包| |-C|解压缩到指定目录|
压缩成.gz的效果图:

压缩成.bz2的效果图:

解压缩.gz的效果图:

解压缩.gz到指定目录效果图:

解压缩.bz2的效果图:

解压缩.bz2到指定目录效果图:

3. zip和unzip命令及选项的使用
|命令|说明| |---|---| |zip|压缩成.zip格式文件| |unzip|解压缩.zip格式文件|
unzip命令选项:
|选项|说明| |---|---| |-d|解压缩到指定目录|
压缩成.zip的效果图:

解压缩.gz的效果图:

解压缩.zip到指定目录效果图:

说明:
- 压缩文件尽量使用.gz格式,因为占用空间较少
- 使用zip命令压缩的文件占用空间比较多, 当时比较通用,操作更加简单。
4. 小结
- .gz和.bz2的压缩文件使用tar命令来完成压缩和解压缩
- .zip的压缩文件使用zip和unzip命令来完成压缩和解压缩
文件权限命令
学习目标
- 能够使用chmod命令完成文件权限的修改
1. chmod命令的介绍
|命令|说明| |---|---| |chmod|修改文件权限|
chmod修改文件权限有两种方式:
- 字母法
- 数字法
2. chmod 字母法的使用
角色说明:
|角色|说明| |---|---| |u|user, 表示该文件的所有者| |g|group, 表示用户组| |o|other, 表示其他用户| |a|all, 表示所有用户|
权限设置说明:
|操作符|说明| |---|---| |+|增加权限| |-|撤销权限| |=|设置权限|
权限说明:
|权限|说明| |---|---| |r|可读| |w|可写| |x|可执行| |-|无任何权限|
chmod命令字母法效果图:

chmod命令同时设置多个角色的效果图:

3. chmod 数字法的使用
数字法就是“rwx” 这些权限也可以用数字来代替
权限说明:
|权限|说明| |---|---| |r|可读,权限值是4| |w|可写,权限值是2| |x|可执行,权限值是1| |-|无任何权限,权限值是0|
chmod命令数字法效果图:

4. 小结
- 利用 chmod 命令可以控制文件的操作权限。
- 字母法格式: chmod 不同角色设置的权限 文件
- 数字法格式: chmod 不同角色的权限值 文件名
获取管理员权限的相关命令
学习目标
- 能够知道切换到管理员用户的命令
1. sudo命令的使用
|命令|说明| |---|---| |sudo -s|切换到root用户,获取管理员权限| |sudo|某个命令的执行需要获取管理员权限可以在执行命令前面加上sudo|
sudo -s效果图:

sudo 命令效果图:

说明:
- 如果只是某次操作需要使用管理员权限建议使用 sudo , 也就是说临时使用管理器权限。
- 如果大量操作都需要使用管理员权限 sudo –s, 但是操作需谨慎。
2. whoami命令的使用
|命令|说明| |---|---| |whoami|查看当前用户|
whoami 命令效果图:

3. exit命令的使用
|命令|说明| |---|---| |exit|退出登录用户|
exit 命令的效果图:

说明:
- 如果是切换后的登陆用户,退出则返回上一个登陆账号。
- 如果是终端界面,退出当前终端。
4. who命令的使用
|命令|说明| |---|---| |who|查看所有的登录用户|
who 命令的效果图:

5. passwd命令的使用
|命令|说明| |---|---| |passwd|修改用户密码,不指定用户默认修改当前登录用户密码|
passwd 命令的效果图:

6. which命令的使用
|命令|说明| |---|---| |which|查看命令位置|
which 命令的效果图:

7. 关机和重启命令的使用
|命令|说明| |---|---| |shutdown –h now|立刻关机| |reboot|重启|
8. 小结
- sudo 是临时获取管理员权限
- sudo -s 是切换到管理员用户,一直使用管理员权限,需要谨慎操作。
- exit 是退出当前用户
- passwd 默认修改当前用户密码
用户相关操作
学习目标
- 能够知道创建用户的命令
1. 创建用户
|命令|说明| |---|---| |useradd|创建(添加)用户|
useradd命令选项:
|选项|说明| |---|---| |-m|自动创建用户主目录,主目录的名字就是用户名| |-g|指定用户所属的用户组,默认不指定会自动创建一个同名的用户组|
创建用户效果图:

查看所有用户信息的文件效果图:

说明:
- useradd 命令的使用需要使用管理员权限,前面需要加上 sudo
- 创建用户如果不指定用户组,默认会自动创建一个同名的用户组
- 查看用户是否创建成功,可以查看/etc/passwd这个文件
- 查看用户组是否创建成功,可以查看/etc/group这个文件
passwd文件中的每项信息说明,以root:x:0:0:root:/root:/bin/bash为例:
- 第一个:用户名
- 第二个:密码占位符
- 第三个:uid, 用户id
- 第四个:gid, 用户所在组id
- 第五个:用户描述, 可选,
- 第六个:用户的主目录所在位置
- 第七个:用户所用 shell 的类型,一般由bash或者sh,默认不设置是sh类型
group文件中的每项信息说明, 以laowang:x:1001:为例:
- 第一个:用户组名
- 第二个:用户组密码占位符,一般Linux系统的用户组都没有密码的
- 第三个:组id
id命令查看用户信息:
|命令|说明| |---|---| |id|查看用户信息|
id命令效果图: 
每项信息说明:
uid=1001(laowang) gid=1001(laowang) 组=1001(laowang)
- 第一个: uid 表示用户id
- 第二个: gid 表示用户组id
- 第三个: 组 表示用户所在的用户组
2. 设置密码
给其它用户设置密码,需要使用:sudo passwd 用户名
设置密码效果图: 
3. 切换用户
|命令|说明| |---|---| |su|切换用户|
语法格式: su - 用户名
切换用户效果图:

在laowang用户使用sudo -s效果图:
4. 删除用户
|命令|说明| |---|---| |userdel|删除用户|
userdel命令选项:
|选项|说明| |---|---| |-r 用户名|删除用户主目录,必须要设置,否则用户主目录不会删除|
删除用户效果图:

id查看用户信息效果图:

查看group文件信息效果图:

说明:
- 删除用户,默认同名的用户组也会被删除
5. 小结
- 创建用户命令格式: sudo useradd -m 用户名, 默认会创建一个同名的用户组。
- 查看用户信息使用 id 命令或者 /etc/passwd文件
- 给用户设置密码使用 sudo passwd 用户名
- 切换用户使用 su - 用户名
- 删除用户使用 sudo userdel -r 用户名,默认会删除同名的用户组。
用户组相关操作
学习目标
- 能够知道创建用户组的命令
1. 创建用户组
|命令|说明| |---|---| |groupadd|创建(添加)用户组|
创建用户组效果图:

2. 创建用户并指定用户组
创建用户并指定用户组效果图:

3. 删除用户组
|命令|说明| |---|---| |groupdel|删除用户组|
删除用户组效果图:

说明:
- 如果用户组下面有用户先删除用户在删除用户组
4. 小结
- 创建用户组使用: sudo groupadd 用户组名
- 创建用户并指定用户组使用: sudo useradd -m -g 用户组 用户名
- 删除用户组使用: sudo groupdel 用户组名
- 查看用户组信息使用 /etc/group文件
远程登录、远程拷贝命令
学习目标
- 能够写出远程拷贝、远程登录命令
1. 远程登录、远程拷贝命令的介绍
|命令|说明| |---|---| |ssh|远程登录|
2. ssh命令的使用
ssh是专门为远程登录提供的一个安全性协议,常用于远程登录,想要使用ssh服务,需要安装相应的服务端和客户端软件,当软件安装成功以后就可以使用ssh命令了,以后可以通过远程登录之间操作远程的服务器。
远程登录效果图:

软件安装步骤:
- 假如Ubuntu作为服务端,需要安装ssh服务端软件. 执行命令: sudo apt-get install openssh-server
- 客户端电脑如果是 macOS 系统则不需要安装 ssh 客户端软件,默认已经安装过了,直接可以使用 ssh 命令
- 客户端电脑如果是Windows系统则需要安装OpenSSH for Windows这个软件
ssh命令格式:
ssh 用户名@ip地址
ssh命令效果图:

说明:
- 在一台电脑上可以安装安装ssh客户端和ssh服务端软件
- 在Ubuntu安装ssh客户端命令: sudo apt-get install openssh-client
3. FileZilla软件的使用
FileZilla 是一个免费开源的FTP软件, 使用可视化方式进行上传和下载文件。以后可以通过 FileZilla 来代替 scp 命令
FileZilla使用效果图:

4. 小结
- ssh命令是远程登录主机电脑,相当于直接操作的是远程电脑。
- 大量的文件上传和下载可以通过可视化工具FileZilla来完成。
未完待续, 同学们请等待下一期
全套笔记资料代码移步: 前往gitee仓库查看
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
相关文章:
【Python使用】python高级进阶知识md总结第3篇:静态Web服务器-返回指定页面数据,静态Web服务器-多任务版【附代码文档】
python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:操作系统,虚拟机软件,Ubuntu操作系统,Linux内核及发行版,查看目录命令,切换目录命令,绝对路径和相对…...
ELK 日志分析系统
ELK (Elasticsearch、Logstash、Kibana)日志分析系统的好处是可以集中查看所有服务器日志,减轻了工作量,从安全性的角度来看,这种集中日志管理可以有效查询以及跟踪服务器被攻击的行为。 Elasticsearch 是个开源分布式…...
机器学习模型—逻辑回归
机器学习模型—逻辑回归 逻辑回归是一种用于分类任务的监督机器学习算法,其目标是预测实例属于给定类别的概率。逻辑回归是一种分析两个数据因素之间关系的统计算法。本文探讨了逻辑回归的基础知识、类型和实现。 什么是逻辑回归 逻辑回归用于二元分类,其中我们使用sigmoi…...
Ubuntu20.04 创建新的用户
1、了解Linux目录结构 推荐看一下:https://www.runoob.com/linux/linux-system-contents.html Linux支持多个用户进行操作的,这样提高了系统的安全性,也可以多人共用一个系统,不过要注意的是系统中安装的软件相关路径࿰…...
大数据入门之hadoop学习
大数据 1. 学习hadoop之前,我们先了解一下什么是大数据? 大数据通常指的是数据集规模非常庞大且难以在常规数据库和数据处理工具中有效处理的数据。 大数据的特点: 容量:大数据具有庞大的规模,远远超出了传统数据库和…...
MySQL安装使用(mac、windows)
目录 macOS环境 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 windows环境 一、下载 二、 环境配置 三、安装mysql 1.初始化mysql 2.安装Mysql服务 3.更改密码 四、检验 1.查看默认安装的数据库 2.其他操作 macOS环境 一、下载MySQL 打开 MyS…...
Day27:安全开发-PHP应用TP框架路由访问对象操作内置过滤绕过核心漏洞
目录 TP框架-开发-配置架构&路由&MVC模型 TP框架-安全-不安全写法&版本过滤绕过 思维导图 PHP知识点 功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等 技…...
c++: 引用能否替代指针? 详解引用与指针的区别.
文章目录 前言1. 引用和指针的最大区别:引用不能改变指向2. 引用和指针在底层上面是一样的3. 引用和指针在sizeof面前大小不同4. 有多级指针,没有多级引用5.引用是引用的实体,指针会向后偏移同一个类型的大小 总结 前言 新来的小伙伴如果不知道引用是什么?可以看我的上一篇文…...
Java项目源码基于springboot的家政服务平台的设计与实现
大家好我是程序员阿存,在java圈的辛苦码农。辛辛苦苦板砖,今天要和大家聊的是一款Java项目源码基于springboot的家政服务平台的设计与实现,项目源码以及部署相关请联系存哥,文末附上联系信息 。 项目源码:Java基于spr…...
十大排序算法(冒泡排序、插入排序、选择排序、希尔排序、堆排序、快排、归并排序、桶排序、计数排序、基数排序)
目录 一、冒泡排序: 二、插入排序: 三、选择排序: 四、希尔排序: 五、堆排序: 六、快速排序: 6.1挖坑法: 6.2左右指针法 6.3前后指针法: 七、归并排序: 八、桶…...
matplotlib 画多子图的时候添加图例/legend
一开始搞不懂图例是什么意思,以为是整个图,最后发现原来图例就是代码中的legend: 子图的图例(legend)用于解释图表中各条线、点或其他元素所代表的含义。图例通常位于图表的一角,以帮助观众理解图表中展示的…...
手写一个线程池
自己手动写一个线程池的必要条件需要先了解我们使用的线程池的功能。为什么会有线程池?这是为了减少线程创建和销毁的开销。复用线程的目的。为了达到这个目的。预计方案是:需要一个存放任务的队列,主线程相当于生产者,在这个队列…...
Spring Boot 多环境配置
Spring Boot 多环境配置 在现代的软件开发中,通常需要将应用程序部署到不同的环境中,如开发环境、生产环境和测试环境等。每个环境可能需要不同的配置参数,例如数据库连接信息、日志级别等。在 Spring Boot 中,我们可以通过简单的…...
【Python】一文带你详解sys.executable函数的作用
【Python】一文带你详解sys.executable函数的作用 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支…...
thingsboard如何自定义udp-transport
0、参考netty实现udp的文章 https://github.com/narkhedesam/Netty-Simple-UDP-TCP-server-client/blob/master/netty-udp/src/com/sam/netty_udp/server/MessageDecoder.java 调试工具使用的是:卓岚TCP&UDP调试工具 1、在common\transport下面创建udp模块,仿照mqtt的创…...
【汇编】#3 8086与数据有关的寻址方式
文章目录 操作码与操作数1. 8086处理器的与数据有关的寻址方式1.1 立即数寻址方式1.2 寄存器寻址方式 2. 有效(偏移)地址(effective address,EA)与缺省段寄存器选择tips:段跨越前缀2.1 直接寻址tips:直接寻址与立即寻址…...
【数据结构】单链表的层层实现!! !
关注小庄 顿顿解馋(●’◡’●) 上篇回顾 我们上篇学习了本质为数组的数据结构—顺序表,顺序表支持下标随机访问而且高速缓存命中率高,然而可能造成空间的浪费,同时增加数据时多次移动会造成效率低下,那有什么解决之法呢ÿ…...
丰田研究所(TRI)最新成果——可实现全身操控的软体机器人Punyo
文 | BFT机器人 人形机器人在近年的科技浪潮中迅速崛起,成为了各界瞩目的焦点,众多企业纷纷推出自家的机器人模型,但仔细观察,不难发现它们中的许多在操作方式上仍显得颇为相似。这些典型的人形机器人,以其机械臂和抓…...
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
文章目录 0. 前言1. 级联神经网络介绍2. MTCNN介绍2.1 MTCNN提出背景2.2 MTCNN结构 3. MTCNN PyTorch实战3.1 facenet_pytorch库中的MTCNN3.2 识别图像数据3.3 人脸识别3.4 关键点定位 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解ÿ…...
MFC中字符串string类型和CString类型互转方法
在Microsoft Foundation Classes (MFC)中,CString是一个非常方便的类,用于处理C风格的字符串。有时,你可能需要在MFC的CString和C标准库中的std::string之间进行转换。下面是如何在两者之间进行转换的方法: CString转std::string…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
