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 的响应模式,如下所示:

使用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  

Django学习笔记(二):MTV架构学习及使用步骤相关推荐

  1. motan学习笔记 二 motan架构分析

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  2. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

  3. Istio服务网格实践指南 学习笔记(二) Istio架构

    个人学习Istio系列  学习笔记 Istio架构篇 本篇部分参考原书 https://jimmysong.io/istio-handbook/ 仅为个人学习笔记 这幅图中描述了以下内容: 1.Ist ...

  4. django上课笔记6-MVC,MTV架构-中间件-初识Form组件

    一.MVC,MTV架构 models(数据库,模型) views(html模板) controllers(业务逻辑处理) --> MVC models(数据库,模型) templates(htm ...

  5. [转]NLog学习笔记二:深入学习

    本文转自:http://www.cnblogs.com/CCHUncle/p/5207735.html 配置文件 NLog所有的配置信息都可以写到一个单独的xml文件中,也可以在程序代码中进行配置. ...

  6. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  7. SEO学习笔记二:在搜索引擎竞价排名环境下,个人网站将何去何从?

    本文首发于「妙蛙种子前端」博客,欢迎关注- 早期的搜索引擎,大家都在一个相对公平的规则内玩耍:你的内容够好,网站体验更优秀,在搜索引擎中的排名一般都会比较高. 因为搜索引擎能便捷的为我们定位到精准的内 ...

  8. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  9. 项目管理学习笔记二:信息系统服务管理

    项目管理学习笔记二:信息系统服务管理 2010-10-22 09:56:33 标签:信息系统 笔记 项目管理 服务 学习 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文 ...

  10. 架构mysql_MySQL学习笔记之MySQL架构

    MySQL 最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离.这种处理和存储分离的设计可以在使用时根据性能.特性,以及其他需求来选择数据存储的 ...

最新文章

  1. 深入分析Spark任务调度的原理--Java后端同学入门Spark编程系列
  2. c语言字符串替换有大小写,(C语言)字符串大小写无关查找替换
  3. 程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结
  4. 低代码发展系列专访之五:低代码的最大价值点是“技术平民化”吗?
  5. 谈谈感想,8元体会易生信培训
  6. [语言]Webassembly
  7. python列表引用_Python列表(list)的方法调用
  8. 艾伟也谈项目管理,开始一个项目时最重要的是什么?
  9. 企业上云势不可挡 安全策略该如何制定?
  10. java post 注册_利用JAVA发送POST请求(垃圾注册就是这么产生的) | 学步园
  11. 《程序设计技术》第四章例程
  12. 视频 | 计算万物的理论
  13. matlab生成指数分布,如何在matlab中生成负指数分布和均匀分布的随机数
  14. 现代公司理论在线考试习题
  15. Android仿自如客APP裸眼3D效果
  16. SVAC的重要Feature
  17. Vue中使用Font Awesome
  18. 蓝桥杯算法提高 小写转换为大写
  19. 初级,中级,高级程序员需要具备的能力
  20. 计算机教室日常维护制度,现代信息技术教室管理制度

热门文章

  1. 手把手教你使用hexo搭建属于你的个人博客
  2. 双节锂电池充电方案芯片IP2320,支持5V输入同步开关升压充电
  3. Javaweb之文件上传与下载
  4. 打印机常见问题与解决方法 1
  5. android电视安装应用未安装,LG电视用户购买后无法安装第三方软件,原因是非安卓系统...
  6. 手机版ziperello_【米桌同屏助手下载】米桌同屏助手 v1.6.0.3 官方版-七喜软件园...
  7. javascript高级程序设计 --- 浏览器检测、操作系统检测、浏览器内核检测
  8. 弘辽科技:淘宝店铺怎么优化商品关键词?
  9. python模拟砍价代码_拼多多砍价算法实现探究
  10. Origin_如何下载和安装插件