Django学习笔记(二):MTV架构学习及使用步骤
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架构开发网站步骤
- 需求分析
- 数据库设计。
- 了解网站的每一个页面,并设计网页模板(.html)文件
- 使用virtualenv创建并启用虚拟机环境
- 使用pip install安装django
- 使用django-admin startproject命令生成项目
- 使用python manage.py startapp创建app
- 创建templates文件夹,并把所有网页模板文件都放在此文件夹中,如os.path.join(BASE_DIR, 'templates');
- 创建static文件夹,并把所有静态文件(图形文件、css文件、js文件等等)都放在此文件夹中;
- 修改settings.py,把相关文件夹设置都加入,也把生成的app名称加入INSTALLED_APPS序列中;
- 根据数据库设计,编辑models.py,创建数据库表格;
- 编辑views.py,先import在models.py中创建的数据模型;
- 编辑admin.py,把models.py中定义的数据模型导入,并使用admin.site.register注册新增的类,让admin界面可以处理数据库内容;使用python manage.py createsuperuser命令建立数据库管理账号,登录http://127.0.0.1:8000/admin,通过数据库管理界面对数据库数据进行管理。
- 编辑views.py,设计处理数据的相关模块,输入和输出都通过templates相关的模块操作获取来自于网页的输入数据,以及显示html文件的网页内容;
- 编辑urls.py,先import在views.py中定义的模块;
- 编辑urls.py,创建网址和views.py中定义的模块的对应关系。
- 执行python manage.py makemigrations让 Django 记录模型的变更信息(这里不触发数据库数据变更,只是记录在app名称目录\migrations下的0001_initial.py等文件里)。
- 执行python manage.py migrate同步数据库变更,触发数据库和数据表哥结构修改。
- 执行python manage.py runserver测试网站。
- 上线部署
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架构学习及使用步骤相关推荐
- motan学习笔记 二 motan架构分析
motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...
- (Python入门)学习笔记二,Python学习路线图
(Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...
- Istio服务网格实践指南 学习笔记(二) Istio架构
个人学习Istio系列 学习笔记 Istio架构篇 本篇部分参考原书 https://jimmysong.io/istio-handbook/ 仅为个人学习笔记 这幅图中描述了以下内容: 1.Ist ...
- django上课笔记6-MVC,MTV架构-中间件-初识Form组件
一.MVC,MTV架构 models(数据库,模型) views(html模板) controllers(业务逻辑处理) --> MVC models(数据库,模型) templates(htm ...
- [转]NLog学习笔记二:深入学习
本文转自:http://www.cnblogs.com/CCHUncle/p/5207735.html 配置文件 NLog所有的配置信息都可以写到一个单独的xml文件中,也可以在程序代码中进行配置. ...
- wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)
如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...
- SEO学习笔记二:在搜索引擎竞价排名环境下,个人网站将何去何从?
本文首发于「妙蛙种子前端」博客,欢迎关注- 早期的搜索引擎,大家都在一个相对公平的规则内玩耍:你的内容够好,网站体验更优秀,在搜索引擎中的排名一般都会比较高. 因为搜索引擎能便捷的为我们定位到精准的内 ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- 项目管理学习笔记二:信息系统服务管理
项目管理学习笔记二:信息系统服务管理 2010-10-22 09:56:33 标签:信息系统 笔记 项目管理 服务 学习 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文 ...
- 架构mysql_MySQL学习笔记之MySQL架构
MySQL 最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离.这种处理和存储分离的设计可以在使用时根据性能.特性,以及其他需求来选择数据存储的 ...
最新文章
- 深入分析Spark任务调度的原理--Java后端同学入门Spark编程系列
- c语言字符串替换有大小写,(C语言)字符串大小写无关查找替换
- 程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结
- 低代码发展系列专访之五:低代码的最大价值点是“技术平民化”吗?
- 谈谈感想,8元体会易生信培训
- [语言]Webassembly
- python列表引用_Python列表(list)的方法调用
- 艾伟也谈项目管理,开始一个项目时最重要的是什么?
- 企业上云势不可挡 安全策略该如何制定?
- java post 注册_利用JAVA发送POST请求(垃圾注册就是这么产生的) | 学步园
- 《程序设计技术》第四章例程
- 视频 | 计算万物的理论
- matlab生成指数分布,如何在matlab中生成负指数分布和均匀分布的随机数
- 现代公司理论在线考试习题
- Android仿自如客APP裸眼3D效果
- SVAC的重要Feature
- Vue中使用Font Awesome
- 蓝桥杯算法提高 小写转换为大写
- 初级,中级,高级程序员需要具备的能力
- 计算机教室日常维护制度,现代信息技术教室管理制度
热门文章
- 手把手教你使用hexo搭建属于你的个人博客
- 双节锂电池充电方案芯片IP2320,支持5V输入同步开关升压充电
- Javaweb之文件上传与下载
- 打印机常见问题与解决方法 1
- android电视安装应用未安装,LG电视用户购买后无法安装第三方软件,原因是非安卓系统...
- 手机版ziperello_【米桌同屏助手下载】米桌同屏助手 v1.6.0.3 官方版-七喜软件园...
- javascript高级程序设计 --- 浏览器检测、操作系统检测、浏览器内核检测
- 弘辽科技:淘宝店铺怎么优化商品关键词?
- python模拟砍价代码_拼多多砍价算法实现探究
- Origin_如何下载和安装插件