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 ...
随机推荐
- 微软依赖注入Unity
Unity是一个依赖注入(Dependency Injection,DI)容器.DI的标准描述文章来自Martin Flower[0].作为一个快速的摘要,依赖注入容器就是一个用于构建高度松耦合的软件 ...
- 芝麻HTTP:Scrapyd的安装
Scrapyd是一个用于部署和运行Scrapy项目的工具,有了它,你可以将写好的Scrapy项目上传到云主机并通过API来控制它的运行. 既然是Scrapy项目部署,基本上都使用Linux主机,所以本 ...
- 原生态的ajax代码
<script type="text/javascript"> var xmlhttprequest; function GetXmlHttpRequest() { i ...
- httpclient的理解(代码理解)
一,httpclient的理解 httpcliet就是模仿浏览器在服务器内部从一个项目调用另一个项目的技术.比如说调用接口等. HttpClient 是 Apache Jakarta Common ...
- 谈谈在.NET Core中使用Redis和Memcached的序列化问题
前言 在使用分布式缓存的时候,都不可避免的要做这样一步操作,将数据序列化后再存储到缓存中去. 序列化这一操作,或许是显式的,或许是隐式的,这个取决于使用的package是否有帮我们做这样一件事. 本文 ...
- BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案)
BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案) 题意 : 给你一个长为\(R\)宽为\(C\)的矩阵,第\(i\)行\(j\)列的数为\(P_{i,j}\). 有\(m\)次 ...
- 【BZOJ4652】【NOI2016】循环之美(莫比乌斯反演,杜教筛)
[BZOJ4652]循环之美(莫比乌斯反演,杜教筛) 题解 到底在求什么呢... 首先不管他\(K\)进制的问题啦,真是烦死啦 所以,相当于有一个分数\(\frac{i}{j}\) 因为值要不相等 所 ...
- 【BZOJ2190】仪仗队(数论)
[BZOJ2190]仪仗队(数论) 题面 粘链接,题目中有图片 题解 对于题意,可以考虑 如果有\((i,j)\)能够被看见 那么,\((ki,kj)\)就一定不能看见 所以,如果一个点能够被看见,则 ...
- 圆方树简介(UOJ30:CF Round #278 Tourists)
我写这篇博客的原因 证明我也是学过圆方树的 顺便存存代码 前置技能 双联通分量:点双 然后就没辣 圆方树 建立 新建一个图 定义原图中的所有点为圆点 对于每个点双联通分量(只有两个点的也算) 建立一个 ...
- 【noip模拟】局部最小值
TimeLimit: 1000ms MemoryLimit: 256MB Description 有一个n行m列的整数矩阵,其中1到n×m之间的每个整数恰好出现一次.如果一 ...