HTTP协议
HTTP协议
超文本传输协议,目的是为了提供一种发布Web及接收Web页面数据的方法;常用端口为80;过程:客户端首先通过80端口向HTTP服务端发起请求,建立TCP连接,之后进行HTTP数据传输
B/S架构
HTTP 协议属于建立在 TCP 协议中的应用层上的一种协议,HTTP 协议以客户端请求和服务端应答为标准,浏览器(*browser*)通常被人称为客户端,Web 服务器(*server*)常被称作服务端,所以人们经常称这样浏览器/服务端的架构为 B/S 架构
Request 请求
当使用HTTP协议访问某个连接时,首先向服务器提交一个Request请求
Request消息分为三部分:Request Line、Request Header、Body
请求方式
请求 | 解释 |
---|---|
GET | 获取服务端数据,查 |
POST | 向服务端提交数据 ,增 |
PUT | 向服务器上传数据,更新 |
DELETE | 删除服务端通过Request-URL的资源,删 |
Response 响应
服务端接收到之后,会返回一个Response响应,浏览器接收到,对信息进行解析
状态码
状态码 | 意义 |
---|---|
200—OK | 客户端的请求服务端正常完成 |
301—Moved Permanently | 客户端请求的资源已被永久移到新的URL |
302—Found | 客户顿请求的资源被临时移动,客户端继续使用原有 URL;常用于三方登录之后的跳转 |
404–Not-Found | 客户端请求的方式不被允许 |
502—Bad Geteway | 服务端内部错误,服务端错误的网关 |
静态网站
将数据直接写死在页面中
动态网站
Django框架
Django主要采用MVT模式
- M-model:模型,操作数据库功能部分
- V-View:视图,处理业务逻辑的位置,提取数据、获取用户数据等待操作都在这里
- T-Template:模板,用来展示视图操作后的数据,也可以在模板中为用户提供表单,让用户可以提交数据
MVC
- M-model:模型,和MVT的m是一样的,同样用来操作数据库
- V-view:视图,和MVT的T是一样的,用来进行数据的可视化
- C-Controller:控制器,相当于MVT中的C,用来进行数据的逻辑操作
框架安装
pip install django==2.2.2 # 安装django
项目创建
# 创建djanjo应用
django-admin startapp 应用名
# 启动项目
python manage.py runserver
目录介绍
- manage.py:用来管理当前项目的一个命令行工具
- myproject:项目主文件夹,包含了项目最基本的配置文件及路由文件
__init__.py
:空文件,用来指明当前的myproject为一个可导入的模块包- settings.py:项目主要配置文件
- urls.py:项目主要路由配置文件
- wsgi.py:项目部署WSGI并发服务器时所需要的配置文件
settings.py配置(自己默认为重要的)
- DATABASES:数据库配置项,默认使用SQLite3,一个本地文件数据库
- INSTALL_APPS:Django项目中所有使用的应用名称,自创建子应用也要加到这里,不然ORM数据库无法被识别到
- ROOT_URLCONF:主路由配置文件,字符串填写 url.py 文件路径
- LANGUAGE_CODE:所使用语言文件,一般国内项目采用zh-Hans
- TIME_ZONE:所使用时区,一般国内项目采用Asia/Shanghai
- DATABASES:数据库配置项,默认使用SQLite3,一个本地文件数据库
- STATIC_URL*:访问静态资源时的URL***路径
子应用的创建
python manage.py startapp 应用名
子应用目录结构
- admin.py*:这个app****所使用表模型在admin注册展示时需要的文件
- views.py:视图函数文件,编写主要的增删改查等数据逻辑的地方
- models.py:未来操作数据库时,如果使用ORM****映射关系,那么将使用该文件
子应用视图逻辑
编写视图
打开app下的viems.py文件,编写视图函数
在views.py中我们通过编写函数的形式,接收用户请求的request并返回一个response,这个response通过HttpResponse方法进行返回,这个方法很简单,返回的就是一个html字符串
# 导包
from django.http import HttpResponse
# 视图函数
def MyView(request):
# 返回一个相应
return HttpResponse('<h3>视图</h3>')
编写路由
在主项目名中的urls.py,编写
# 导包 myapp-应用名
from myapp import views
# 主路由
urlpatterns = [
path('admin/', admin.site.urls),
path('myview/',views.MyView)
]