一 Django框架的安装
1.1 django-生产环境的版本选择
Django有很多版本,而且在不断的更新,那如果生产环境要开发部署使用,需要选择什么样子的版本呢?
![513de7b34e61dd1ebcd4fdb84b0ec464.png](https://img-blog.csdnimg.cn/img_convert/513de7b34e61dd1ebcd4fdb84b0ec464.png)
我们需要事先了解关于django的三个版本标识
1、功能发布的版本号如何标识?
版本号一般是A.B或者A.(B+1)格式,例如1.x系列版本有1.8、1.9、1.10等版本,代表1版本下更新的版本。这些版本的更新频率是8个月左右,更新内容基本都是新功能,改进现有功能等。
![0a4a47a70daa8a8f0aa3344de2acbab8.png](https://img-blog.csdnimg.cn/img_convert/0a4a47a70daa8a8f0aa3344de2acbab8.png)
2、LTS版本
LTS是长期支持(Long Term Support)的缩写,某个特性版本将被指定为长期支持(LTS)版本。这些版本将对导致安全性和数据丢失的bug进行修复,支持时间通常三年。
![edb252fa84cd3799483470b37c65d18d.png](https://img-blog.csdnimg.cn/img_convert/edb252fa84cd3799483470b37c65d18d.png)
3、补丁版本的版本号如何标识?
版本号一般是:A.B.C格式的,例如1.8.18、 1.9.2等最后一位数字代表的版本号的就是补丁版本了。这些版本的发布,是为了修正错误或安全问题。这些版本将100%兼容相关的主版本,因此我们应该保持升级到最新的补丁版本,以保证数据的完整和安全。
![6d7cdff0e4ad901cac55b0e1d8a4ce59.png](https://img-blog.csdnimg.cn/img_convert/6d7cdff0e4ad901cac55b0e1d8a4ce59.png)
综上所述,最新的LTS版本,而且补丁版本也是要最新的,是最好的选择
![b5b73aff249d8b3d04f168beb34c3da0.png](https://img-blog.csdnimg.cn/img_convert/b5b73aff249d8b3d04f168beb34c3da0.png)
Django的版本规划
![99d8f29b3aff6298dc160b1d05a556aa.png](https://img-blog.csdnimg.cn/img_convert/99d8f29b3aff6298dc160b1d05a556aa.png)
主要几个版本的支持时间
![01de0f8b85d7be6302b4449c51e8c383.png](https://img-blog.csdnimg.cn/img_convert/01de0f8b85d7be6302b4449c51e8c383.png)
所以在当下,最合适的版本应该为2.2.9,虽然官网推荐使用最新版本3.0.2,但是生产环境还是不要去做小白鼠了,你懂的。
未来几个版本的规划
![0282203fa712adc49515c1966f67b862.png](https://img-blog.csdnimg.cn/img_convert/0282203fa712adc49515c1966f67b862.png)
Django是python的Web框架,应该为其选择哪个版本的python解释器呢?
| Django 版本 | 支持的Python版本系列 | | ----------- | ------------------------------------------ | | 1.11 | 2.7, 3.4, 3.5, 3.6, 3.7 (added in 1.11.17) | | 2.0 | 3.4, 3.5, 3.6, 3.7 | | 2.1 | 3.5, 3.6, 3.7 | | 2.2 | 3.5, 3.6, 3.7, 3.8 (added in 2.2.8) | | 3.0 | 3.6, 3.7, 3.8 |
django的版本我们推荐2.2.9LTS,所以搭配的python解释器版本,我们应该选择python3.5之后的解释器
1.2 安装
pip3
查看
pip3
二 django框架的使用
2.1 命令行创建并启动Django项目
![a67dcdc45835367e6fb2bb2114f21cb7.png](https://img-blog.csdnimg.cn/img_convert/a67dcdc45835367e6fb2bb2114f21cb7.png)
如果使用的是我们自定义的框架来开发web应用,需要事先生成框架包含的一系列基础文件,然后在此基础上进行开发。
如果使用的是Django框架来开发web应用,同样需要事先生成Django框架包含的一系列基础文件,然后在此基础上进行开发。
但Django框架更为方便的地方在于它已经为我们提供了一系列命令来帮我们快速地生成这一系列基础文件
# 在命令行执行以下指令,会在当前目录生成一个名为mysite的文件夹,该文件夹中包含Django框架的一系列基础文件
django-admin startproject mysite
创建功能模块
cd mysite # 切换到mysite目录下,执行以下命令
python manage.py startapp app01 # 创建功能模块app01,此处的startapp代表创建application下的一个功能模块。例如我们要开发application是京东商城,京东商城这个大项目下有一个订单管理模块,我们可以将其命名为app01
运行
python manage.py runserver 8001 # 在浏览器输入:http://127.0.0.1:8001 会看到Django的欢迎页面。
2.2 基于Pycharm创建Django项目以及虚拟环境
![9219d39f1bf884697787dd0ef0d6b346.png](https://img-blog.csdnimg.cn/img_convert/9219d39f1bf884697787dd0ef0d6b346.png)
之前我们提过,django有多种版本,如果我们想不同版本的django都体验一下,怎么做呢,可以创建虚拟环境,在虚拟环境中安装想要使用的django版本,如下
![01c02a900ec00e5c0dc23e5e036ee245.png](https://img-blog.csdnimg.cn/img_convert/01c02a900ec00e5c0dc23e5e036ee245.png)
创建成功后,在虚拟环境中安装最新3.0.2版本的django即可
![a675776f4493b8bf545cc1b8bd87ef3b.png](https://img-blog.csdnimg.cn/img_convert/a675776f4493b8bf545cc1b8bd87ef3b.png)
![041d7ca404c3e323ced0e57f62ab57f5.png](https://img-blog.csdnimg.cn/img_convert/041d7ca404c3e323ced0e57f62ab57f5.png)
2.3 Django项目目录结构
截目录树的图(按照下述目录截图)
mysite
关键文件介绍
-manage.py---项目入口,执行一些命令
-项目名
-settings.py 全局配置信息
-urls.py 总路由,请求地址跟视图函数的映射关系
-app名字
-migrations 数据库迁移的记录
-models.py 数据库表模型
-views.py 处理业务逻辑的函数,简称视图函数
配置文件settings.py请参考附录1(暂作了解)
2.4 基于Django实现的一个简单示例
(1)url.py
from
(2)视图
from
(3)模版
在templates目录下新建文件index.html
<!DOCTYPE html>
测试:
python manage.py runserver 8001 # 在浏览器输入:http://127.0.0.1:8001/index/ 会看到当前时间。
三 MVC模式和MTV模式
MVC,全名是Model View Controller,是Web开发领域中的一种著名的软件架构模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起
# M:Model模型负责业务对象与数据库的映射(ORM),用于数据库打交道
其示意图如下所示
![d780c860fbec2f54594eb331fccd8fc6.png](https://img-blog.csdnimg.cn/img_convert/d780c860fbec2f54594eb331fccd8fc6.png)
![2c186b7848714648c7f04539084e80dd.png](https://img-blog.csdnimg.cn/img_convert/2c186b7848714648c7f04539084e80dd.png)
MVC的软件架构模式具有有耦合性低、重用性高、生命周期成本低等优点,主要用于web框架,常用的开发语言,有java,php,node.js等等。 Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV模式,
# Model(模型):负责业务对象与数据库的对象(ORM)
MTV模式与MVC本质上都是一样的,都是为了各组件保持松耦合关系,如下所示
![a7dbb042c7c7fde4627aba09d7fc7c8e.png](https://img-blog.csdnimg.cn/img_convert/a7dbb042c7c7fde4627aba09d7fc7c8e.png)
四 Django框架的分层与请求生命周期
综上,我们使用Django框架就是为了开发application,而application的工作过程本质就是根据不同的请求返回不同的数据,Django框架将这个工作过程细分为如下四层去实现
1、路由层(根据不同的地址执行不同的视图函数,详见urls.py)
2、视图层(定义处理业务逻辑的视图函数,详见views.py)
3、模型层 (跟数据库打交道的,详解models.py)
4、模板层(待返回给浏览器的html文件,详见templates)
![61833c5f29adeed6bdc68de9796277f7.png](https://img-blog.csdnimg.cn/img_convert/61833c5f29adeed6bdc68de9796277f7.png)
这体现了一种解耦合的思想,下面我们开始详细介绍每一层
![aa890f2ec2ada1667678648086510636.png](https://img-blog.csdnimg.cn/img_convert/aa890f2ec2ada1667678648086510636.png)