【Python使用】python高级进阶知识md总结第4篇:静态Web服务器-命令行启动动态绑定端口号,html 的介绍【附代码文档】

news2024/11/17 20:32:52

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仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


编辑器 vim

学习目标

  • 能够说出vim的三种工作模式
  • 能够说出vim对应复制和粘贴命令

1. vim 的介绍

vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。

2. vim 的工作模式

  • 命令模式
  • 编辑模式
  • 末行模式

说明:

vim 打开文件进入的是命令模式

工作模式效果图:

ssh命令

注意点:

编辑模式和末行模式之间不能直接进行切换,都需要通过命令模式来完成。

3. vim 的末行模式命令

  • :w 保存
  • :wq 保存退出
  • :x 保存退出
  • :q! 强制退出

4. vim 的常用命令

|命令|说明| |---|---| |yy|复制光标所在行| |p|粘贴| |dd|删除/剪切当前行| |u|撤销| |:/搜索的内容|搜索指定内容| |G|回到最后一行| |gg|回到第一行| |数字+G|回到指定行|

常用命令扩展

|命令|说明| |---|---| |>>|往右缩进| |<<|往左缩进| |:%s/要替换的内容/替换后的内容/g|全局替换| |:开始行数,结束行数s/要替换的内容/替换后的内容|局部替换| |.|重复上一次命令操作| |shift+6|回到当前行的行首| |shift+4|回到当前行的行末| |ctr+f|下一屏| |ctr+b|上一屏| |V|按行选中| |ctr+r|反撤销|

5. 小结

vim 是一款功能强大的命令文本编辑器,可以对远程服务器的代码直接进行修改,这样操作起来更加快速和方便。

软件安装

学习目标

  • 能够使用apt-get命令安装软件

1. 软件安装的介绍

Ubuntu软件安装有两种方式:

  • 离线安装(deb文件格式安装)
  • 在线安装(apt-get方式安装)

2. deb文件格式安装

是 Ubuntu 的安装包格式,可以使用 dpkg 命令进行软件的安装和卸载。

|命令|说明| |---|---| |dpkg|安装和卸载deb安装包|

dpkg命令选项:

|选项|说明| |---|---| |-i|离线安装deb安装包|

dpkg命令效果图:

dpkg命令

3. apt-get方式安装

是在线安装deb软件包的命令,主要用于在线从互联网的软件仓库中搜索、安装、升级、卸载软件。

在线安装软件命令格式:

  • sudo apt–get install 安装包 , 表示在线安装deb安装包

4. 更改镜像源

因为使用 apt-get 命令默认是从国外的服务器下载安装软件的,会导致下载安装速度很慢,所以需要更改成国内的镜像源服务器。

镜像源说明:

镜像源就是下载软件来源的服务器。

镜像源效果图:

镜像源命令

更改镜像源的方式:

  1. 可视化方式更改镜像源
  2. 手动方式更改镜像源

可视化方式更改镜像源:

可视化方式更改镜像源 可视化方式更改镜像源 可视化方式更改镜像源 可视化方式更改镜像源 可视化方式更改镜像源 可视化方式更改镜像源 可视化方式更改镜像源

手动方式更改镜像源:

手动方式更改镜像源 手动方式更改镜像源 手动方式更改镜像源 手动方式更改镜像源 手动方式更改镜像源 手动方式更改镜像源 手动方式更改镜像源

说明:

  1. 手动修改镜像源,配置完成以后需要执行 sudo apt-get update 这个命令,更新镜像源保证可以下载最新的软件。
  2. 使用apt-get方式安装软件一定要联网

5. 小结

  1. Ubuntu 操作系统安装软件有两种方式:

  2. sudo dpkg -i 安装包 命令

  3. sudo apt-get install 安装包 命令卸载

  4. 使用 apt-get 命令也就是在线安装需要更改镜像源,提高下载和安装速度。

软件卸载

学习目标

  • 能够使用apt-get命令卸载软件

1. 软件卸载的介绍

Ubuntu软件卸载有两种方式:

  • 离线安装包的卸载(deb 文件格式卸载)
  • 在线安装包的卸载(apt-get 方式卸载)

2. deb 文件格式卸载

命令格式:

sudo dpkg –r 安装包名

-r 选项表示安装的卸载

dpkg 卸载效果图:

dpkg命令

3. apt-get 方式卸载

命令格式:

sudo apt-get remove 安装包名

apt-get 卸载效果图:

apt-get命令

4. 小结

  • Ubuntu 操作系统卸载软件有两种方式:

  • dpkg -r 安装包 命令

  • apt-get remove 安装包 命令卸载

多任务的介绍

学习目标

  • 能够知道多任务的执行方式

1. 提问

利用现学知识能够让两个函数或者方法同时执行吗?

不能,因为之前所写的程序都是单任务的,也就是说一个函数或者方法执行完成另外一个函数或者方法才能执行,要想实现这种操作就需要使用多任务

多任务的最大好处是充分利用CPU资源,提高程序的执行效率

2. 多任务的概念

多任务是指在同一时间内执行多个任务,例如: 现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。

多任务效果图:

多任务

3. 多任务的执行方式

  • 并发
  • 并行

并发:

在一段时间内交替去执行任务。

例如:

对于单核cpu处理多任务,操作系统轮流让各个软件交替执行,假如:软件1执行0.01秒,切换到软件2,软件2执行0.01秒,再切换到软件3,执行0.01秒……这样反复执行下去。表面上看,每个软件都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像这些软件都在同时执行一样,这里需要注意单核cpu是并发的执行多任务的。

并行:

对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的软件,多个内核是真正的一起执行软件。这里需要注意多核cpu是并行的执行多任务,始终有多个软件一起执行

4. 小结

  • 使用多任务就能充分利用CPU资源,提高程序的执行效率,让你的程序具备处理多个任务的能力。
  • 多任务执行方式有两种方式:并发并行,这里并行才是多个任务真正意义一起执行。

进程

学习目标

  • 能够知道进程的作用

1. 进程的介绍

在Python程序中,想要实现多任务可以使用进程来完成,进程是实现多任务的一种方式。

2. 进程的概念

一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。

比如:现实生活中的公司可以理解成是一个进程,公司提供办公资源(电脑、办公桌椅等),真正干活的是员工,员工可以理解成线程。

注意:

一个程序运行后至少有一个进程,一个进程默认有一个线程,进程里面可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程

3. 进程的作用

单进程效果图:

进程

多进程效果图:

进程

说明:

多进程可以完成多任务,每个进程就好比一家独立的公司,每个公司都各自在运营,每个进程也各自在运行,执行各自的任务。

4. 小结

  • 进程是操作系统进行资源分配的基本单位。
  • 进程是Python程序中实现多任务的一种方式

多进程的使用

学习目标

  • 能够使用多进程完成多任务

1 导入进程包

```py

导入进程包

import multiprocessing ```

2. Process进程类的说明

Process([group [, target [, name [, args [, kwargs]]]]])

  • group:指定进程组,目前只能使用None
  • target:执行的目标任务名
  • name:进程名字
  • args:以元组方式给执行任务传参
  • kwargs:以字典方式给执行任务传参

Process创建的实例对象的常用方法:

  • start():启动子进程实例(创建子进程)
  • join():等待子进程执行结束
  • terminate():不管任务是否完成,立即终止子进程

Process创建的实例对象的常用属性:

name:当前进程的别名,默认为Process-N,N为从1开始递增的整数

3. 多进程完成多任务的代码

```py import multiprocessing import time

跳舞任务

def dance(): for i in range(5): print("跳舞中...") time.sleep(0.2)

唱歌任务

def sing(): for i in range(5): print("唱歌中...") time.sleep(0.2)

if name == 'main': # 创建跳舞的子进程 # group: 表示进程组,目前只能使用None # target: 表示执行的目标任务名(函数名、方法名) # name: 进程名称, 默认是Process-1, ..... dance_process = multiprocessing.Process(target=dance, name="myprocess1") sing_process = multiprocessing.Process(target=sing)

# 启动子进程执行对应的任务
dance_process.start()
sing_process.start()

```

执行结果:

py 唱歌中... 跳舞中... 唱歌中... 跳舞中... 唱歌中... 跳舞中... 唱歌中... 跳舞中... 唱歌中... 跳舞中...

4. 小结

  1. 导入进程包

  2. import multiprocessing

  3. 创建子进程并指定执行的任务

  4. sub_process = multiprocessing.Process (target=任务名)

  5. 启动进程执行任务

  6. sub_process.start()

未完待续, 同学们请等待下一期

全套笔记资料代码移步: 前往gitee仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件工程(Software Engineering)

一、软件工程概述 1.软件生存周期 软件&#xff1a; 包含程序、数据及相关文档 软件工程&#xff1a; 涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。 目的&#xff1a; 提高软件生产率、提高软件质量、降低软件成本。 文档的作用&…

数据链路层_以太网

IP协议确定数据跨网络从主机A到主机B的路径&#xff0c;即IP协议解决了路径选择问题&#xff0c;但在这之前&#xff0c;必须先解决数据在一个子网内的传输的问题。跨网络的本质就是跨多个子网&#xff0c;只要一个子网内可以通信&#xff0c;那么便可以跨网络通信。 一.以太…

【编程项目开源】拼图游戏(鸿蒙版)

目标 做个拼图游戏 效果 开发工具 下载DevEco Studio 工程截图 开源地址 https://gitee.com/lblbc/puzzle/tree/master/puzzle_hongmeng_arkUI 关于 厦门大学计算机专业|华为八年高级工程师 专注《零基础学编程系列》 http://lblbc.cn/blog 包含&#xff1a;Java | 安卓…

【类和对象】类的作用域 | 类的实例化 | 类对象模型 | this指针

目录 5.类的作用域 6.类的实例化 6.1成员的声明和定义 6.2实例化出的对象大小 7.类对象模型❗❗ 7.1如何计算类对象的大小 7.2类对象的存储方式猜测 7.3结构体内存对齐规则 7.3.1内存对齐 7.3.2大小端 8.this指针 8.1this指针的引出 8.2this指针的特性 C和C实…

面试官:volatile如何保证可见性的,具体如何实现?

写在开头 在之前的几篇博文中&#xff0c;我们都提到了 volatile 关键字&#xff0c;这个单词中文释义为&#xff1a;不稳定的&#xff0c;易挥发的&#xff0c;在Java中代表变量修饰符&#xff0c;用来修饰会被不同线程访问和修改的变量&#xff0c;对于方法&#xff0c;代码…

TortoiseSVN 报错:The server unexpectedly closed the connetion

前言 CentOS7Linux 安装subversionmod_dav_svn&#xff0c;搭建subversion(svn)服务器 The server unexpectedly closed the connetion 解决办法 重启Apache服务 shell> systemctl restart httpd

Day1-力扣刷题学习打卡

1、两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以…

如何理解Linux文件IO?

一、文件IO的概述 1、什么是文件&#xff1f; Linux下一切皆文件。普通文件、目录文件、管道文件、套接字文件、链接文件、字符设备文件、块设备文件。 2、什么是IO&#xff1f; input output&#xff1a;输入输出 3、什么是文件IO&#xff1f; 对文件的输入输出&#xff0c;把…

Transformers 直观解释——不仅是如何工作,而且为什么工作得这么好 (Ketan Doshi)

Transformers 直观解释——不仅是如何工作&#xff0c;而且为什么工作得这么好 Transformers Explained Visually — Not Just How, but Why They Work So WellHow does the input sequence reach the Attention module 输入序列如何到达Attention模块Each input row is a word…

条件队列大法好:wait和notify的基本语义

条件队列是我们常用的轻量级同步机制&#xff0c;也被称为“waitnotify”机制。但很多刚刚接触并发的朋友可能会对wait和notify的语义和配合过程感到迷惑。 今天从join()方法的实现切入&#xff0c;重点讲解wait()方法的语义&#xff0c;简略提及notify()与notifyAll()的语义&…

ubuntu安装docker的详细教程

检查卸载老版本docker ubuntu下自带了docker的库,不需要添加新的源。 但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。 注:docker的旧版本不一定被称为docker,docker.io 或 docker-engine也有可能,所以卸载的命令为: sudo apt-get remove -y docker docke…

记录工作中莫名其妙的bug

1、问题&#xff1a;办公室的电脑突然除了我之外&#xff0c;都不能访问我们的线上系统了 原因&#xff1a;因为是内网&#xff0c;同事有刚刚升级了Windows11&#xff0c;配置的DNS被清了&#xff0c;还有同事换了公司的新电脑&#xff0c;还没有配DNS 位于&#xff1a;C /Win…

JVM虚拟机:通过jconsole远程连接解决JVM报错

本文重点 前面我们介绍过的一些工具都是使用命令行的方式来帮助我们完成&#xff0c;本文我们将使用一种图形化界面的方式来远程连接&#xff0c;然后完成关于JVM的检测任务。 jconsole jconsole是一个JVM的检测工具&#xff0c;这个工具任何安装了Java的电脑上都有的&#…

亚信安慧AntDB:简化开发与运维

AntDB将SQL作为唯一语法&#xff0c;不仅简化了开发运维&#xff0c;更提高了数据库的易用性。这种统一的语法规范让开发人员在编写和优化复杂的查询时更加得心应手&#xff0c;极大地提高了工作效率。随着数据库系统的不断发展&#xff0c;AntDB的独特设计理念使得用户可以更加…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】

【程序简介】&#x1f4bb;&#x1f50d; 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程&#xff0c;动态展现了三连杆机构的运动动画&#xff0c;同时给出了角位移、角速度和角加速度的时程曲线&#xff0c;除了程序本身&#xff0c;还提供了机构运动学公式推导文档…

Centos7安装Clickhouse单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

【力扣白嫖日记】1934.确认率

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1934.确认率 表&#xff1a;Signups 列名类型user_idinttime_stampdatetime User_id是该表的主键。每一行都…

线性回归 quickstart

构建一元一次方程 100个&#xff08;X, y &#xff09;&#xff0c;大概是’y3x4’ import numpy as npnp.random.seed(42) # to make this code example reproducible m 100 # number of instances X 2 * np.random.rand(m, 1) # column vector y 4 3 * X np.random…

4.10.CVAT——3D对象标注

文章目录 1. 创建任务2. 3D 任务工作区3.标准 3D 模式 Standard 3D mode4. 用长方体进行注释4.1. 用shapes进行注释4.2. 使用长方体进行跟踪Tracking 使用 3D 注释工具来标记 3D 对象和场景&#xff0c;例如车辆、建筑物、景观等。 1. 创建任务 要创建 3D 任务&#xff0c;您必…

PS学习-抠图-蒙版-冰块酒杯等透明物体

选中图&#xff0c;ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景&#xff0c;这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的