基础知识铺垫
- 什么是软件?
软件是程序
软件是代码
实现某种功能的封装体
代码块
- 软件是用来做什么的?
实现某种功能的
- 为什么必须要用软件?
为了实现某种功能
什么是软件:是一大堆的可执行二进制指令的集合!软件是安装在操作系统上,可以用来执行一定功能的计算机程序
软件是用来做什么的:软件是为了解决实际生活中的问题的!
解决生活中的问题的核心:数据处理——通过软件购物、看电影、玩游戏、聊天、办公、学习——数据处理时解决问题的核心
数据处理方式(****不同软件共同的部分):增加、修改、删除、查询[遍历]
不同的部分:处理流程
老王[郑州]~女朋友[郑州]
简单的流程[步骤]处理逻辑
老刘[郑州]~女朋友[西安]
复杂的流程处理逻辑[流程增加了、限制升级了]
老王[郑州]~女朋友[郑州]
简单的流程[步骤]处理逻辑:本地处理
看电影:老王约上女朋友去看电影:本机就可以实现的过程:单机软件
老刘[郑州]~女朋友[西安]
复杂的流程处理逻辑[流程增加了、限制升级了]
老刘~女朋友 相约看电影远程操作远程的聊天[微信、QQ、手机..]_网络软件
软件的分类——模拟现实生活
通过软件的使用是否需要联网
1 单机软件:不需要联网,单台主机既可以实现软件的操作功能,如CS、office
2 网络软件:软件的操作功能必须在联网的情况下才能正常使用
网络软件的分类
1 C/S:需要安装客户端才能使用的软件——Client(客户端)/Server(服务端)
如:QQ、LOL
2 B/S:只需要客户端电脑上有一个浏览器就可以正常访问并使用软件的全部功能
Browser(浏览器)/Server(服务器),如网页游戏、web qq;淘宝、京东
网站和软件的区别!
什么是网站?
在网络上可以访问、可以通过客户端浏览器直接访问到网页!
网站和软件区别?
网站包含软件,软件不能直接表示网站
静态网站(网页):主要用来进行信息展示的网页数据,在网络上被发布共享,其他人可以通过浏览器直接访问查看,如公司的官方网站!学校的首页!政府机构的首页!
动态网站:主要可以通过浏览器访问到网页数据,并且可以进行数据处理的网站,如淘宝上购买商品;包括了网页中的数据,可以动态的从服务器获取并且展示!
(1)通过网络URL地址,直接访问服务器,获取并展示服务器上的数据!
(2)AJAX:异步刷新技术~在不刷新网页的前提下,从服务器获取数据;通过DOM操作将数据渲染展示到网页中!
什么样的网站可以称为软件?
行业:可以执行数据动态处理的网站,就是一种网络软件
通俗:网站就是软件
1. 什么是web?
web:蜘蛛网、网络
web一般情况下,指代的就是我们的**广域网络**
根据网络中计算机数据以及所在的区域的大小,划分为不同的网络层级
局域网:小范围多台主机互相通过网络连接,实现数据共享的操作
城域网:中等返回多台主机互联,实现一定范围内网络数据的共享
**广域网**:全球范围的计算机互联网络!
2. 什么是web软件?
web软件指代的就是动态网站网络软件,就是B/S结构的网络软件
3. 什么是web开发?
web开发,就是针对B/S结构的软件功能开发
(1) 软件的需求分析[需要的功能、要求的限制](需求分析工程师)
(2) 软件结构的详细设计[根据软件中需要的功能,进行模块的划分;进行代码结构的设计](架构师、开发工程师)
(3) 软件的开发[协同开发](开发工程师)
(4) 软件的测试[针对个人开发的功能,和团队开发的功能进行不同的测试](测试工程师)
(5) 软件的部署维护操作[软件交付](运维工程师)
小结:
什么是软件?
软件是用来做什么的?
软件的分类?
网络软件的分类?
什么是web?
web软件和网站的区分?
web开发流程分析?
学习技能点:简单的自我测试[3W1H]
what?这是个什么东西
where?用在什么地方
why?为什么要用这个东西
how?这个东西怎么操作
软件的结构
1. 生活中的场景
备注:软件是怎么出现的?
目标:解决生活中的问题
**原型:还原生活**
熟悉生活-> 代码的形式-> 抽象成软件
解决方案:无限的模拟生活——大量的项目练习
软件的处理结构:
经典的三层结构:
(1) 软件界面
(2) 数据处理
(3) 数据存储
软件的扩展结构
(1) 软件界面
a) 程序控制界面
(2) 数据处理
a) 程序控制数据库
(3) 数据存储
软件的设计结构:分层模型
软件代码可以在设计过程中,分成不同的层次结构,主要体现~上层代码、下层代码
|-- myproject/ 项目文件夹
|-- main.py 程序运行的入口
|-- menu.py 程序的界面:专门展示给用户查看界面数据的操作
|-- service.py 程序的业务处理类:服务类:专门进行功能处理
|-- data.py 数据处理类:专门进行数据的增删改查~
|-- mysql 数据存储:数据仓库
备注:
分层模型的开发原则(项目规范):上层代码可以调用下层代码的变量、函数、方法;下层代码只能返回结果给上层代码使用;同层之间可以互相调用;不能跨层调用
规范的作用:为了更加高效、快速的开发项目
实施的操作:尽可能的满足项目规范!
回归web软件
通信协议:为了保障网络两端的主机可以正确的发送和接受并且解析数据,出现的一种协商计议之后约定的结果
OSI组织(民间组织):OSI/RM模型,规范了各种情况下的网络通信协议
关于加密算法
1. 单向加密:只能加密,不能解密的加密算法,如单向散列算法;单向哈希加密等等
如:用户在网站注册账号[密码要进行单向加密]
用户后续登录时,对密码进行加密,然后比较密文如果一致~表示登录成功!
对于数据的安全性提高了很多!
2. 双向加密:密码可以加密,同时可以解密的操作
a) 加密使用的密钥和解密使用的密钥如果一致的话:对称加密
b) 加密使用的密钥和解密使用的密钥不一致的话:非对称加密
[http://www.12306.cn/mormhweb/](http://www.12306.cn/mormhweb/)
web软件
界面:命令行界面
后端程序python开发 | 前端界面(良好风格的网页)界面
术语解释:
接口:现实生活中,不同的管道之间连接的地方称为接口,通过接口可以实现两个不同的管道之间传输数据
软件行业~接口:两个不同的程序之间,可以互相进行数据传输的一个函数/方法
web软件:web接口:工作在浏览器客户端和服务器之间的一个函数,通过这个函数就可以实现浏览器客户端访问服务器上的数据
web服务器接口:web接口:实现了wsgi网关协议的接口
wsgi:web service gateway interface
python中的web开发,一般底层都是实现了wsgi的web接口,可以实现浏览器中访问我们服务器的资源数据
demo01.py
|
# 定义一个[函谷关]web接口函数
# env参数:上下文环境,包含**请求**
# response参数:服务器返回给客户端的**响应**
def app(env, response):
# 设置**响应头**:描述响应数据的内容
response(‘200 OK’, [(‘Content-type’, ‘text/html’)])
# 返回数据
return [b‘<h1>hello web!</h1>’]
# 导入一个创建服务器的内建函数
from **wsgiref.simple_server** import **make_server**
# 开始创建服务器,部署网关接口函数
if __name__ == “__main__”
# 创建服务器
http_server = make_server(‘’, 8000, app)
# 运行服务器
http_server.serve_forever()
|
上述程序,就相当于已经部署好了一个web网关接口
通过python demo01.py 运行程序
浏览器中,通过访问:[http://localhost:8000/](http://localhost:8000/)就可以访问到服务器上的数据了。
网友评论