一、预备知识
HTTP协议的认识
HTTP协议就是客户端和服务端之间数据传输的格式规范,格式简称为“超文本传输协议”。
-
基于TCP/IP
(1)HTTP是一个属于应用层的面向对象的协议
(2)HTTP协议工作于客户端-服务端架构上。 -
基于请求-相应模式
(1)浏览器为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求
(2)WEB服务根据接收到的请求后,向客户端发送响应信息。
为什么说HTTP协议是无状态协议?
HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。
怎么解决HTTP协议无状态协议?
无状态协议解决办法:
- 通过Cookie
- 通过Session会话保存
Http请求中常见的请求方式
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
- HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
- HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
MVC模式和MTV模式
MVC 模式
MVC 就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式
连接在一起,模型负责业务对象与数据库的映射( ORM ),视图负责与用户的交互(页面),控制器接受用户
的输入调用模型和视图完成用户的请求。
MTV 模式
MTV模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,在
Python的世界中,基本(除了Pylons)都使用了 MVC 的变种 MTV (Model Templates View 模型-模板视图)。
Django 的MTV分别是值:
- M 代表模型(Model): 负责业务对象和数据库的关系映射( ORM )。
- T 代表模板 (Template):负责如何把页面展示给用户( html )。
- V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:
二、Django 快速入门
Django框架介绍
什么是框架?
- 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品,
- 框架的功能类似于 基础设施 ,提供并实现最为基础的软件架构和体系
- 通常情况下我们依据框架来实现更为复杂的业务程序开发二个字,框架就是程序的骨架
Python 中常见的框架有哪些?
- 大包大揽 Django 被官方称之为完美主义者的Web框架。
- 力求精简 web.py 和 Tornado
- 新生代微框架 Flask 和 Bottle
Django 框架介绍
- Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。
- 由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序,而无需重新创建轮子。
- 免费的和开源的。
- 被官方称之为完美主义者的Web框架。
官方网址:django
Django 框架的特点
Django 可以使用什么Python版本?
Django 的开发版本
Django 的安装
如果速度慢的话可以-i 指定国内的源,
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
在线安装Django,指定版本安装
pip install django
三、Django快速入门 —后台管理
第一步:创建并运行Django项目
运行
python manage.py runserver
访问http://127.0.0.1:8000/
第二步:应用的创建和使用
(1) 创建第一个应用程序
- Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。
- 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
- 创建应用的命令:
python manage.py startapp bookApp
启用后台Admin 站点管理
- 站点分为“内容发布(后台管理)”和“公共访问(前台管理)”两部分
- “内容发布”的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力的工作。
- 因此, Django 会根据定义的模型类完全自动地生成管理模块
Django 框架中有一个非常强大的应用功能: 自动管理界面。 常被Web平台管理者使用,去管理整个
Web平台。
默认情况下,在 settings.py 配置文件中 INSTALLED_APPS 包含以下应用程序,为了后续的开发,默
认这些应用程序都是包含在里面的。
应用程序 | 功能 |
---|---|
django.contrib.admin | 管理网站 |
django.contrib.auth | 认证管理 |
django.contrib.contenttypes | 内容类型的框架 |
django.contrib.sessions | 会话框架 |
django.contrib.messages | 消息框架。 |
django.contrib.staticfiles | 管理静态文件的框架 |
(0). 数据库迁移
使用这些 Django 自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用它们。
python manage.py makemigrations
python manage.py migrate
http://127.0.0.1:8000/admin
(1). 创建管理员用户
# 按提示输入用户名、邮箱、密码
python manage.py createsuperuser
- 启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
- 进入管理站点,默认可以对 groups、users 进行管理
(2). 管理界面本地化
编辑 settings.py 文件,设置编码、时区
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
(2) 编写第一个视图函数
我们来写第一个视图。打开文件 bookApp/views.py 并放入以下Python代码:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
# 视图:对用户的请求(request)进行业务逻辑操作,最总返回给用户响应(reponse)
def index(request):
print("用户请求的路径:",request.path)
return HttpResponse('首页信息')
打开文件BookMange/urls.py,加入以下代码
from bookApp.views import index
urlpatterns = {
path('admin/', admin.site.urls),
path('index/', index),
}
访问127.0.0.1:8000/index/
(3) 路由规则
要在 bookApp 目录中创建一个 URLconf ,创建一个名为 urls.py 。如下所示:
from django.conf.urls import url
from . import views
urlpatterns = [
# 当用户访问bookApp应用的主页时, 执行视图函数index,反向根据名称获取url地址;
url(r'', views.index, name='index'),
]
根据配置文件 BookManage/settings 可知路由查找的主文件是 BookManage/urls.py , 因此在该文件
添加一条 url 规则:
from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# 当用户访问的url地址以book, 请访问bookApp.urls这个url配置文件进行匹配并执行对应的视图函数.
#当用户访问请求路径为book/时,访问bookApp.urls.py子路由配置文件
url(r'book/', include('bookApp.urls')),
]
(4) 效果展示
- 启动服务器
python manage.py runserver
- 访问 url 地址: http:// 127.0.0.1:8000/book/ 如果看到主页内容 图书管理系统 即成功。
- 可以通过html将页面变得好看,改变字体大小颜色等。。。。
编写视图的 bookApp/views.py
def index(request):
print("用户请求的路径:",request.path)
return HttpResponse('<h1 style="color:green">首页信息</h1>')
url() 函数介绍
Django url() 可以接收四个参数,分别是两个必选参数: regex 、 view 和两个可选参数:kwargs 、 name 。
- regex : 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
- view : 用于执行与正则表达式匹配的 URL 请求。
- kwargs : 视图使用的字典类型的参数。
- name : 用来反向获取 URL。