1.定义
可执行的二进制指令的集合。用于执行一定功能的计算机程序。
2.作用:
解决实际生活中的问题
3.核心:
数据处理
4.处理方式:
增删改查(crud)
个软件在处理流程上不一定相同
5.从使用环境分类:
>.单机
>.网络
6.从架构分类
>.C/S 客户端——服务器
>.B/S 浏览器——服务器
网站和软件的区别
1.网站:
>.可以在客户端通过浏览器可以直接访问。
>.网站和软件的区别
网站包含软件,软件不能直接表示网站。
>.分类
静态:信息展示。
动态:访问到网页数据,并且可以数据处理。
>.AJAX:异步刷新技术,可以在不刷新网页的情况下从服务器获取数据;通过DOM操作将数据展示到网页中。
2.web
>.即为广域网
>.网络分层
局域网/城域网/广域网
>.web软件
动态网站网络软件,即为B/S结构的网络软件
3.web开发
>.对B/S结构的软件进行功能开发
步骤:
==================================
>.需求分析
>.软件结构设计
>.开发
>.测试
>.部署和维护
软件结构
1.处理结构:
>.软件界面
>.数据处理
>.数据存储
2.扩展结构
>.界面——程序控制界面
>.数据处理——程序控制数据库
>.数据存储
3.软件结构设计:分层模型
>.软件代码可以在设计过程中分成不同的层次结构,主要区别为上下层代码关系。
|--myproject/ 项目文件夹
|--main.py 程序入口
|--menu.py 界面
|--service.py 程序的业务处理类、服务类,用于功能处理
|--data.py 数据处理类,用于对数据增删改查
|--mysql 数据存储,数据仓库
>.开发原则:
上层代码可以调用下层代码的变量、函数、方法;
下层代码尽可以返回结果给上层代码使用
同层之间可以互相调用
不可以跨蹭调用
web软件
>.web服务器通过web接口来连接程序
>.web接口是实现了wsgi网关协议的接口
wsgi: web service gateway interface
>.python中的web开发,一般来说底层都实现了wsgi的web接口,以实现浏览器访问服务器资源的数据。
1.定义一个web接口:
from wsgiref.simple_server import make_server
def app(env,response):
#设置响应头:描述相应数据的内容
response("200 OK",[('Content-type','text/html')])
#返回数据
return [b'<h1>hello</h1>']
#导入一个创建服务器的内建函数
#开始创建服务器
if __name__ == "__main__":
h_server = make_server('',8000,app )
print("server is starting...")
#启动服务
h_server.serve_forever()
#注意本行是空行 一定要留
.上边的程序段就等于设置了一个web接口,通过运行此程序,就可以通过浏览器访问了,本地访问http://localhost:8000/就可以访问数据了
2.数据分发
from wsgiref.simple_server import make_server
def app(env,response):
#设置响应头
response('200 OK', [('Content-type','text/html')])
#打印一个参数
print(env['PATH_INFO'][1:])
path = env['PATH_INFO'][1:]
#判断不同的url地址,调用不同的参数处理
if path == 'liangshi':
return liang_shi(env, response)
elif path == 'sichou':
return si_chou(env,response)
#返回默认值
return [b'<h1>coco</h1>']
#定义二级处理函数
#访问粮食
def liang_shi(env, response):
return [b'<h1>liangshi</h1>']
#访问丝绸
def si_chou(env, response):
return [b'<h1>sichou</h1>']
if __name__ == '__main__':
http_server = make_server('', 8000,app)
print("server is starting...")
http_server.serve_forever()
以上程序相当于接口的分发数据方式简单实现
Django
1.基本概念
由python编写的,专门用于快速、高效的开发web应用程序的框架。
框架:是模块的集合,具备模块的所有功能,也有简单的功能处理流程,方便开发人员对于对应流程自动化处理。框架也会根据不同的功能流程具有特定的软件结构模式,也算是一个独立的软件。
类似于pygame,是Python中代码块的集合。一般包含多个变量、函数、类型。
2.特点
先进的MVT处理模式
自动化的项目构建管理方式
完善的数据模型处理
强大的后台管理系统
优秀的ORM操作模块
优雅的模板操作封装
优异的缓存支持
完美的表单操作封装
内建sqlite数据库,并且支持其他各种类型数据库。
3.Django中的MVT处理模式
关于web软件的架构模式
MVC和MVT
MVC:全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVT:
m表示model,负责与数据库交互
v 表示view,是核心,负责接收请求、获取数据、返回结果
t 表示template,负责呈现内容到浏览器
4.安装Django
最新版 2.0.X 学习和测试
最流行 1.8~1.11 公司常用
默认安装最新版
安装指定版使用:
pip install django==1.11
5.项目搭建
创建项目
cmd中
dango-admin startproject 项目名称(也是目录名称)
>>.目录结构:
|-- myproject/ 项目的主目录,存放项目中所有文件的文件夹
|-- myproject/ 项目的主项目/根项目,用来管理所有的项目
|-- __init__.py 包定义文件定义了存放这个文件的文件夹是一个python包
|-- settings.py 项目中所有的配置信息存放的模块,配置模块
|-- urls.py 路由模块,定义url地址和访问的处理函数之间的映射关系
|-- wsgi.py 实现了wsgi网关协议的模块,表示Django项目支持wsgi网关协议
|-- manager.py 项目的命令行支持模块,可以在命令行执行不同的命令实现不同的功能
.测试项目
在cmd进入项目目录
python manage.py runserver
之后在浏览器中访问
localhost:8000
即可查看运行成功与否
>.创建跟项目视图
>>.创建一个view.py在跟目录
在此模块中创建一个视图处理函数,返回一个数据
>>.配置路由应用
myproject/urls.py 模块是路由模块
为此模块添加一个路由映射地址
>>.运行程序
.开发二级页面
根目录执行命令行:
dango-admin startapp sec_index(二级网页/网站名称)
二级页面目录结构:
|-- myblog/ 模块的根目录;二级网站的根目录
|-- migrations/ 数据库文件存放的文件夹[数据库部分细讲]
|-- __init__.py 包定义文件
|-- admin.py 后台管理文件[后台管理系统细讲]
|-- apps.py 模块名称定义文件
|-- models.py 数据模型定义文件
|-- test.py 测试文件——一般用不上
|-- views.py 视图模块,定义视图处理函数
.将二级页面的模块应用添加到根项目中:
修改myproject/settigs.py
INSTALLED_ADD 选项列表中,添加sec_index
.编写二级目录的视图处理模块
.配置路由模块
sec_index创建一个路由模块urls.py
将模块中的路由添加到根目录路由模块中
根目录的路由是主路由
二级页面和目录的路由是子路由