Django--基本篇:项目结构与设计模式(MVC)
Django在项目开发中有着结构清晰、层次明显、容易编写理解查阅demo的优点,那么我们来个小案例具体看看。
一、项目结构简析:
我们按照上一篇中的开发流程步骤创建一个新项目myblog,项目下有应用home、存放html文件templates的、运行项目生成的db.sqlite3和manage.py文件。在一个项目下可以创建多个应用,每个应用可以进行一项业务(下图),我这里用home应用文件来处理前端,myadmin应用文件来处理后端。这里需要注意的是在settings.py文件中INSTALLED_APPS列表内添加‘myadmin.apps.MyadminConfig’。
我们现在templates文件夹下面创建index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
你好,这是我的myblog项目中的index页面
</body>
</html>
在项目下的url模块中进行路由的适配如:
#myadmin应用路由适配
url(r'^$',views.index),
在myadmin应用下的views模块下构建index函数如:
def index(request):
#调用 Template 对象 的 render() 方法并传递context来填充模板
return render(request,'myadmin/index.html')
运行项目,那我们的案例就是完成了Starting development server at http://127.0.0.1:8000/可以访问啦
二:设计模式MVC(又称‘MVT’)
模型(Model):提供数据访问接口和模块,我们可以在model中创建表结构,包括数据字段、元数据、数据关系等定义及操作;
视图(View):Django的视图层封装了http request和response的一系列操作和数据流,主要包括URL映射机制和绑定模板等,对于页面中的事件机制、数据更新、逻辑判断主要是在view层中的函数处理
模板(Template):是一套Django自己的页面渲染模板语言,用于若干内置的tags和filters定义页面的生成方式,编写呈现页面的html文件。
我们从 上面的项目结构中就能看出Django框架利用MVC的设计模式层次清晰、各模块的分工合理,所以是python语言用来进行web最普遍和优秀的框架。
Django--基本篇:项目结构与设计模式(MVC)的更多相关文章
- 使用Asp.Net Core MVC 开发项目实践[第一篇:项目结构说明]
先从下图看整体项目结构: Mango.Manager: 为后台管理项目 Mango.Web: 为前台项目 Mango.Framework.Core: 为常用的基础操作类项目 Mango.Framewo ...
- django 的初始项目结构
2.创建Django项目 root@dev:shiyanlou_project# workon syl (syl) root@dev:shiyanlou_project# cd /aaa/shiy ...
- Django学习之项目结构优化
其实就是采用包结构,比如: 目录models,包含__init__.py,a.py,b.py 然后将model class写在a和b中,但是这样的话,导入时就要改变了! from models imp ...
- .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI
作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...
- MVC项目创建与项目结构介绍
一.创建MVC项目 打开VS202,点击:文件—>新建—>项目—>Web—>Asp.Net MVC 4 Web应用程序 填好项目名称.解决方案名称和文件存放位置,然后点击确定, ...
- 【Django】Django项目结构与单元测试
学校的软工项目要开发一个网站,自然的想到用python+Django来做.由于之前没有用Django开发过大型的网站项目,所以遇到了一些问题.记录在此,便于以后查阅. 今天完成了项目结构的设计.部分的 ...
- django开发个人简易Blog——构建项目结构
开发之前第一步,就是构造整个的项目结构.这就好比作一幅画,第一步就是描绘轮廓,有了轮廓,剩下的就是慢慢的填充细节.项目结构规划如下图: 项目结构描述: 本项目以fengzhengBlog为根目录. a ...
- Node.js与Sails~项目结构与Mvc实现
回到目录 Sails是一个Node.js的中间件架构,帮助我们很方便的构建WEB应用程序,网址:http://www.sailsjs.org/,它主要是在Express框架的基础上发展起来的,扩展了新 ...
- 1.2 认识ASP.NET MVC项目结构
1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...
随机推荐
- tar、scp、sftp、rsync简单使用
tar -c 创建一个归档文件 -z 指定压缩格式为gzip -v 显示详细信息 -f 制定文件明 -j 指定压缩格式为bz2 -J 指定压缩格式为 xz -C 压缩.解压至某个目录 -x 自动识别压 ...
- class-决策树Decision Tree
顾名思义,决策树model是树形结构,在分类中,表示基于特征对实例进行分类的过程.可以认为是"if-else"的合集,也可以认为是特征空间,类空间上条件概率分布.主要优点是分类速度 ...
- card card card HDU - 6205
As a fan of Doudizhu, WYJ likes collecting playing cards very much. One day, MJF takes a stack of ca ...
- freemarker中的left_pad和right_pad(十五)
freemarker中的left_pad和right_pad 1.简易说明 (1)left_pad 距左边 (2)right_pad 距右边 (3)当仅仅只有一个参数时,插入的是空白:当有两个参数时, ...
- BZOJ 2683: 简单题(CDQ分治 + 树状数组)
BZOJ2683: 简单题(CDQ分治 + 树状数组) 题意: 你有一个\(N*N\)的棋盘,每个格子内有一个整数,初始时的时候全部为\(0\),现在需要维护两种操作: 命令 参数限制 内容 \(1\ ...
- 我也不知道什么是"莫比乌斯反演"和"杜教筛"
我也不知道什么是"莫比乌斯反演"和"杜教筛" Part0 最近一直在搞这些东西 做了将近超过20道题目吧 也算是有感而发 写点东西记录一下自己的感受 如果您真的 ...
- 牛刀小试——记一次帮朋友小幅优化SQL
和一个小朋友聊天,小朋友愁眉苦脸,不爱说话,我问怎么了,他说:经理交代的一个任务完成不了.我问:什么任务?他说:程序里的一个功能对应的SQL,太慢了.我问:现在性能是什么样?他说:一分钟.我问:达到什 ...
- 从IE浏览器获取当前页面的内容
从IE浏览器获取当前页面内容可能有多种方式,今天我所介绍的是其中一种方法.基本原理:当鼠标点击当前IE页面时,获取鼠标的坐标位置,根据鼠标位置获取当前页面的句柄,然后根据句柄,调用win32的东西进而 ...
- STM32F10x的启动汇编分析
;******************** (C) COPYRIGHT 2009 STMicroelectronics ********************;* File Name ...
- Hive数据仓库笔记(一)
Hive建表: CREATE TABLE records (year STRING,temperature INT, quality INT) ROW FORMAT DELIMITED FIELDS ...