Python3搭建Django框架浅析

前言

在这里插入图片描述
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。

Django 是一个开放源代码的 Web 应用框架,由 Python 写成。Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 。

使用 Django,只要很少的代码,程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务。

以下为Django官方的描述:

Django is available open-source under the BSD license. We recommend using the latest version of Python 3. The last version to support Python 2.7 is Django 1.11 LTS.

Django 版本对应的 Python 版本:在这里插入图片描述
官方版本发布计划和策略:

See the supported versions policy for detailed guidelines about what fixes will be backported.
在这里插入图片描述

1. MVC 模型与MVT模型

Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

MVC 优势:

  • 低耦合
  • 开发快捷
  • 部署方便
  • 可重用性高
  • 维护成本低

Python加 Django 是快速开发、设计、部署网站的最佳组合。
特点:

  • 强大的数据库功能
  • 自带强大的后台功能
  • 优雅的网址

1.1 MVC 模式

MVC设计模式:Model-View-Controller简写。
最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。
MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC 以一种插件式的、松耦合的方式连接在一起。

  • 模型(M)- 编写程序应用的功能(实现算法等等)、负责业务对象与数据库的映射(ORM)。
  • 视图(V)- 图形界面,负责与用户的交互(页面)。
  • 控制器(C)- 负责转发请求,对请求进行处理。

MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。
当前主流的开发语言如Java、PHP、Python中都有MVC框架。
在这里插入图片描述
简易图:
在这里插入图片描述
用户操作流程图:
在这里插入图片描述

1.2 MTV 模型

Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:

  • M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
  • T 表示模板(Template):负责如何把页面(html)展示给用户。
  • V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和Template。

除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template,MTV 的响应模式如下所示:

简易图:
在这里插入图片描述
用户操作流程图:
在这里插入图片描述
解析:
用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:

  • a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户。
  • b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。
  • c.视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

2. 使用Django创建项目

Django框架搭建步骤如下。

2.1安装Python

首先,你需要安装Python环境,我本机是安装的Python3.8.3。

2.2 安装Django

(1)离线安装
大家可以去官网下载,下载下来之后解压缩,解压后是一个Django的文件夹。
在这里插入图片描述
然后再cmd进入到解压缩后的目录,这个目录下面有个setup.py文件
在这里插入图片描述然后在cmd上面输入python setup.py install ,等待安装即可。

安装完成之后进行一个测试,看是否安Django成功,在cmd中输入python 进入到python交互界面,然后import django回车,在输入django.VERSION 会出现如下界面,表示你已经安装Django成功。
在这里插入图片描述
(2)在线安装

pip install Django==3.0.7

安装完成之后可以根据上述方法测试Django是否安装成功。

2.3 创建Django项目

在django中,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块。

1.找到你的python工作空间,我平时是用的pycharm编辑器,这里所说的工作空间是指编辑器一般项目的存放目录,我的目录为:C:\Users\HP\PycharmProjects。
2.在cmd中进入到工作空间,然后输入python django-admin.py startproject DjangoDemo。
3.如果提示找不到django-admin.py或者工作空间中没有生成一个DjangoDemo文件夹,那么证明你的环境有问题。
在这里插入图片描述
4.这时我们可以这样操作,将django-admin.py的物理路径写上,django-admin.py 一般会在python安装目录的\Python38\Scripts文件夹下,把命令改成python D:\Python\Python38\Scripts\django-admin.py startproject DjangoDemo,再执行一次应该就OK了,我这里下载的django的django-admin.py名称为django-admin-script.py。
在这里插入图片描述
5.执行成功之后的文件夹目录结构如下:
在这里插入图片描述
图中标红的是后续创建的,以上这步不会自动生成。

manage.py是项目管理文件,通过它管理项目。
然后就是与项目同名的目录,此处为DjangoDemo。

  • init.py是一个空文件,作用是这个目录可以被当作包使用。
  • asgi.py是项目的asgi配置文件。
  • settings.py是项目的整体配置文件。
  • urls.py是项目的URL配置文件。
  • wsgi.py是项目与WSGI兼容的Web服务器入口。

2.4 创建APP应用

使用一个应用开发一个业务模块,此处创建应用名称为demoapp

1.创建APP应用,cmd进入到我们的项目工程文件夹下面(从上面可以看到有一个manage.py的python文件)然后在cmd中输入python manage.py startapp demoapp 即可创建上图中的demoapp文件,如下图:
在这里插入图片描述

  • _init.py_是一个空文件,表示当前目录demoapp可以当作一个python包使用。
  • tests.py文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来做。
  • models.py文件跟数据库操作相关。
  • views.py文件跟接收浏览器请求,进行处理,返回页面相关。
  • admin.py文件跟网站的后台管理相关。
  • apps文件是django1.10之后增加的,通常里面包含对应用的配置。

到这一步基本大家完成,现在来配置访问路径及页面。

2.5 配置访问路径及页面

应用创建成功后,需要安装才可以使用,也就是建立应用和项目之间的关联,在djangodemosettings.py中INSTALLED_APPS下添加应用的名称就可以完成安装。
1.打开settings.py文件
①、更改INSTALLED_APPS,将上一步创建的app名字加到里面
在这里插入图片描述
②、更改TEMPLATES,将我们创建的html页面模板文件夹加入其中
在这里插入图片描述

2.6 编写APP的views

demoapp中的views.py中代码如下:


from django.shortcuts import render
from django.http import HttpResponse
import json
 
def Index(request):
    return render(request, 'index.html')
 
def getJson(request):
    resp = {'errorcode': 100, 'detail': 'Get success'}
    return HttpResponse(json.dumps(resp), content_type="application/json")
有两个访问接口,一个是跳转页面方法,一个是获取json方法。

2.7 配置访问映射

打开urls.py,代码如下:

from django.urls import path
from demoapp import views
urlpatterns = [
    #path('admin/', admin.site.urls),
    path('index/',views.Index),
    path(r'json/',views.getJson),
]

2.8 编写template模板文件

在我们创建的templates文件夹下面创建一个index.html页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <h1>this is index page</h1>
</body>
</html>

到此为止已经全部配置完成,现在去启动服务。

2.9 启动服务

cmd进入到DjangoDemo文件家中输入python manage.py runserver启动服务,一般默认端口是8000

2.10 访问页面

在页面输入http://localhost:8000/index/
在这里插入图片描述
在页面输入http://localhost:8000/json/
在这里插入图片描述
到这也就搭建完成了,希望能帮助到你,有什么问题大家可以评论或者关注留言,我们相互学习交流。

项目源码gitHub地址:https://github.com/huxiangen/DjangoDemo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章