Django 是 MTV 模型,即

  • M 表示模型(Model):编写数据库结构,负责业务对象与数据库的映射(ORM)。
  • T 表示模板 (Template):负责如何页面(html)展示给用户。
  • V 表示视图(View):负责业务逻辑,并在适当时候调用 Model获取数据和 Template 渲染页面.

除了以上三层之外,还需要一个 URL (urls.py文件)分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View(views.py文件) 处理,View (views.py文件)再调用相应的 Model(models.py文件) 和 Template(template文件夹中的模板文件,包括html等),MTV 的响应模式,如下所示:

系统架构Django MVT模式框架的优点 django mvt架构模型_django

使用MTV架构开发网站步骤

  1. 需求分析
  2. 数据库设计。
  3. 了解网站的每一个页面,并设计网页模板(.html)文件
  4. 使用virtualenv创建并启用虚拟机环境
  5. 使用pip install安装django
  6. 使用django-admin startproject命令生成项目
  7. 使用python manage.py startapp创建app
  8. 创建templates文件夹,并把所有网页模板文件都放在此文件夹中,如os.path.join(BASE_DIR, 'templates');
  9. 创建static文件夹,并把所有静态文件(图形文件、css文件、js文件等等)都放在此文件夹中;
  10. 修改settings.py,把相关文件夹设置都加入,也把生成的app名称加入INSTALLED_APPS序列中;
  11. 根据数据库设计,编辑models.py,创建数据库表格;
  12. 编辑views.py,先import在models.py中创建的数据模型;
  13. 编辑admin.py,把models.py中定义的数据模型导入,并使用admin.site.register注册新增的类,让admin界面可以处理数据库内容;使用python manage.py createsuperuser命令建立数据库管理账号,登录http://127.0.0.1:8000/admin,通过数据库管理界面对数据库数据进行管理。
  14. 编辑views.py,设计处理数据的相关模块,输入和输出都通过templates相关的模块操作获取来自于网页的输入数据,以及显示html文件的网页内容;
  15. 编辑urls.py,先import在views.py中定义的模块;
  16. 编辑urls.py,创建网址和views.py中定义的模块的对应关系。
  17. 执行python manage.py makemigrations让 Django 记录模型的变更信息(这里不触发数据库数据变更,只是记录在app名称目录\migrations下的0001_initial.py等文件里)。
  18. 执行python manage.py migrate同步数据库变更,触发数据库和数据表哥结构修改
  19. 执行python manage.py runserver测试网站。
  20. 上线部署

django-admin与manage.py的其他命令

  django-admin 是 Django 的命令行工具集;manage.py 是项目的命令工具集,可以执行与django-admin一样功能的命令集。

命令格式:

  django-admim + 参数

  python manage.py + 参数

参数说明:

django-admin 和 manage.py命令行工具集

参数

作用

check

check 命令用来检查整个 Django 项目是否存在错误

compilemessages

用于国际化和本地化时,编译 .po 消息文件为 .mo 文件

createcachetable

在 settings.py 中配置 CACHES 即可实现缓存表功能

dbshell

使用 settings.py 文件中 ENGINE 设置中指定的数据库引擎的命令行客户端,默认的是唤起 Sqlite3 数据库命令行客户端。

diffsettings

显示当前 settings.py 文件与 Django 的默认设置之间的差异

dumpdata

输出指定项目的数据表结构和数据

flush

清空当前数据库的数据。保留 migration 的变更不会被清除。只删除数据,不删除表结构。

help

显示帮助手册,显示命令格式等说明

inspectdb

通过已有数据库表生成 models.py 文件。也可以将视图创建为模型文件。

loaddata

将 fixture 文件加载到数据库中。其中 fixture 是序列化好的文件,文件格式一般为 JSON 和 XML。

makemessages

用于国际化和本地化时,生成 .po 文件

makemigrations

根据模型变化生成迁移代码,迁移代码会存放在每个应用下的 migrations 文件夹(注意,这里只是记录变化,不会触发数据库发生变化,只有执行了migrate命令才会触发数据库变更。)

migrate

使数据库状态与当前模型迁移集同步,即把模型的最新状态部署到数据库。

optimizemigration


runserver

启用 Django 提供的轻量级的 Web 服务器,该服务器一般用于开发测试,在生产环境中不能使用。

sendtestemail

发送测试邮件以检测邮箱设置是否正确。 语法:django-admin sendtestemail  XXXXXXX@163.com

shell

启动一个Python交互窗口

showmigrations

显示项目中所有的迁移文件。

sqlflush

打印 flush 命令执行的 SQL 语句。

sqlmigrate

该命令可以将某个 migrate 输出为 SQL 语句

sqlsequencereset

查看对指定app进行sequence重置的sql脚本

squashmigrations


startapp

创建 APP 应用

startproject

创建项目应用

test

运行所有已安装应用的测试

testserver