什么是HTTP 协议?
HTTP协议就是客户端和 服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。
为什么说Http 协议是无状态协议?
HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存
怎么解决Http 协议无状态协议?
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
MVC 模式
MVC 就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求。
MTV 模式
MTV模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,在Python的世界中,基本(除了Pylons)都使用了 MVC 的变种 MTV (Model Templates View 模型-模板视图)。
Django 的MTV分别是值:
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:
什么是框架?
Python 中常见的框架有哪些?
Django 框架介绍
官方网址:https://www.djangoproject.com/
Django 框架的特点
Django 的安装
pip install django==2.2
本人后续直接在pycharm新建Django项目时,pycharm会自动安装Django:
创建完成:
目录说明:
在terminal中运行:python manage.py runserver
在浏览器中查看:
端口可以自己指定:python manage.py runserver 9999
设置终端界面的自动补齐:
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
(1). 创建管理员用户
#按提示输入用户名、邮箱、密码
python manage.py createsuperuser
python manage.py runserver 9999
(2). 管理界面本地化
编辑 settings.py 文件,设置编码、时区
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
(3). 自定义模型加入后台管理
打开 bookApp/admin.py 文件,注册模型
from django.contrib import admin
from models import Book
admin.site.register(Book)
Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不
是创建目录。
文件名 | 功能 |
---|---|
migrations | 生成迁移脚本 |
_init_.py | 在生成app时自动创建 |
admin.py | 跟后台管理相关,比如增删改查 |
apps.py | 一般不用修改 |
models.py | 跟数据库有关,数据收集存入表中高等 |
test.py | 测试文件 |
views.py | 视图文件 |
编写该应用文件下的views.py文件:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#视图:对用户的请求(request)进行业务逻辑操作,最终返回给用户一个响应(response)
def index(request):
print("用户请求的路劲:",request.path)
return HttpResponse('首页信息')
首先,设置一个首页文件,在bookApp文件夹下,编写views.py文件:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#视图:对用户的请求(request)进行业务逻辑操作,最终返回给用户一个响应(response)
def index(request):
print("用户请求的路劲:",request.path)
return HttpResponse('首页信息')
在接受到访问请求时,程序会先从settings.py中读取根url指向的文件,即BookManager.urls:
在urls.py该文件中,会出现不同地址后缀名的导向文件,编辑此文件:
此处输入完index时,可以alt + enter
快捷导入相关函数
在浏览器中访问:http://127.0.0.1:9999/index/
但是,若应用过多,系统的url文件下的地址会过于庞大,所以建议的做法是:
在bookApp目录中创建一个 URLconf ,创建一个名为 urls.py 。如下所示:
# bookApp/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 规则:
# BookManage/urls.py
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配置文件进行匹配并执行对应 的视图函数.
url(r'^book/', include('bookApp.urls')),
]
注:
此外,编辑下index文件:
return HttpResponse('首页信息
')
过程回顾:
http://127.0.0.1:9999/book/
,访问网址为127.0.0.1下的9999端口,请求指向book结尾的路由;