目 录
-
web应用前提知识
web应用定义、软件开发、HTTP协议及特性、动静态页面、模板渲染、web请求流程
-
手撸简易版本的web框架
思路推导:。。。。。
-
web框架
web主流框架的分类及其特点介绍
-
Django简介
创建Django 项目的方式、app(应用)的概念及注意事项、Django各个文件的作用、Django必会三板斧
一、web应用前提知识
1、什么是web应用?
web应用本质上就是一个socket服务端,而用户的浏览器就是一个客户端。
(这样我们就可以自己实现一个web框架)
2、软件开发架构
c/s 架构: 客户端 与 服务端
b/s 架构: 浏览器 与 服务器
b/s架构本质上也就是 c/s架构
3、HTTP协议及特性
HTTP协议的由来?
我们客户端想服务端发送请求数据,以及服务端向客户端返回数据 都需要统一的格式,
统一格式就需要一个统一的规则,这个规则就是HTTP协议。
HTTP协议:
超文本传输协议,它规定了客户端与服务端之间消息传输的格式。
HTTP协议的四大特性:
a、基于TCP/IP协议作用于应用层的协议
b、基于请求响应
一次请求一次回应,服务器不会主动向客户端发送数据
c、无状态
服务端不会保留客户端的状态,客户端每一次请求都是一次新的请求。。。。
d、无连接
HTTP 协议,一次请求回应之后就立即断开连接
数据格式之请求:
请求首行
请求头(一堆k,v键值对)
请求体(post请求携带的数据)
数据格式之响应:
响应首行
响应头(一堆k,v键值对)
响应体(post请求携带的数据)
响应状态码:
1XX: 服务器已经成功接收到你的数据正在处理,并且你可以继续提交数据
2XX: 请求成功 服务器已经返回你想要的数据
3XX: 重定向(跳转网页)
4XX: 请求资源不存在 (找不到请求的对应数据)
5XX: 服务器错误
4、动静态页面
静态页面:
页面上的数据都是写死的,万年不变
动态页面:
页面上的数据都是从后端动态获取的
例如:动态获取当前时间, 将数据库的数据内容传递给前端页面
5 模板渲染
后端生成的数据可以直接传递给前端页面使用(前端页面可以灵活的操作该数据) 》》》 模板语法
模板渲染 、 模板语法需要用到第三方库 pip install jinja2
模板语法 jinja2 : 支持前端直接使用类似于Python的语法操作数据,如下所示
<p>{{ user_dic }}p> <p>{{ user_dic.name }}p> <p>{{ user_dic['password'] }}p> <p>{{ user_dic.get('name') }}p> {% for user in user_dict %} <tr> <td>{{ user.id }}td> <td>{{ user.name }}td> <td>{{ user.password }}td> tr> {% endfor %}
6、web请求流程图
注意:templates文件
该文件夹存放的就是所有的页面文件(.html)
二、手撸简易版本的web框架
思路推导:
三、web框架
什么是web框架?
web框架的本质就是一个socket服务端。
python主流的三大web框架:
Django:大而全, 自带很多功能模块,(缺点: 有点笨重)
Flask: 短小精悍, 自带的功能模块很少,大部分依赖于第三方模块。
Tornado: 异步非阻塞,用于处理多io, 多路复用的情况,可以写游戏后端。
web框架至少包括3部分:
a、socket
b、路由与视图函数
c、模板渲染
3个主流框架分别对应的特点:
Django
a、用的别人的 wsgiref
b、自己写的
c、自己写的
Flask:
a、用的别人的werkzeug
b、自己写的
c、用的别人的 jinja2
Tornado:
a,b,c 都是自己写的
注意事项(*****************************):
1.计算机的名称不能有中文
2.一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面
3.项目名不能起中文
四、Django简介
1、下载与安装事项
版本问题
djang下载
推荐下载1.11.11版本
下载的两种方式:
命令行直接下载
pip3 install django==1.11.11
pycharm下载
验证是否下载成功
django-admin
2、创建Django项目的两种方式
方式1:命令行创建
创建Django项目:
django-admin startproject 项目名
创建app应用:
python3 manage.py startapp app01
启动django项目:
python3 manage.py runserver
方式2:pycharm创建
创建django项目
FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理
创建app的2种方式:(注意:是在Djang项目创建方式2的基础上)
(1)pytharm命令行创建:
python3 manage.py startapp app01
(2)Tools 下面run manage task功能栏:
在功能栏下面写代码不需要写‘python36 manage.py ’, 可以直接写startapp app01
启动django项目的两种方式:
(1)在run manage task 功能栏下面直接写代码 “runserver”
(2)点击绿色箭头按钮
强调:
1.用django一定要保证只有一个在运行状态 切记切记!!!!!!!
2.一定记得清浏览器的缓存