Django学习01---基本介绍与运行方式

一、Django基本介绍

1、django优点与一些基本概念

  • Django的主要目的是简便、快速地开发数据库驱动的网站——动态网站。
  • Django强调代码复用,多个组件可以方便地以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件。
  • Django强调快速开发,DRY是准则。
  • 基于MVC(更确切的说是MTV)

2、动态网站概念

  • 用户向web服务器请求一个文档
  • Web服务器随即获取或生成这个文档
  • 服务器再把结果返回给浏览器
  • 浏览器将这个文档渲染出来

3、优点

(1)为什么要代码复用?
  减少劳动量,节约成本,提高开发效率,实现快速开发!

(2)为什么要快速开发?
  你还可以有余力开发第二个版本,提高市场竞争力
  准则:DRY,Don’t Repeat Yourself

二、设计模式

1、MVC

MVC把web分为数据模型,控制器和视图三层,可以使业务逻辑与数据表现分开;说白了,美工搞美工的,后台搞后台的,互不干扰,发挥各自优势。

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。


    MVC模式介绍

2、Django的MTV模式

2.1 Django遵循了MVC(model-view-controller)这个分层方式,但是确切的说是MTV分层。
  • M ->model,数据模型
  • T->template,模板
  • V->view,视图
django的MTV

2.2 Django的四个核心组件

(1) 基于正则表达式的URL分发器

(2) 视图处理系统

(3) 模板系统

(4) 数据模型和数据库之间的媒介ORM


2.3 Django是MTV分层

(1)Model层

1、使用的是ORM

2、我们所能控制的就是models.py文件

3、负责数据库管理

models.py文件

1、我的理解是,一个类对应数据库的一张表

2、前面构件时:

from django.db import models  #导入内置数据库处理模块

class BlogPost(models.Model):
    title = models.CharField(max_length = 150)  #标题
    body = models.TextField()               #正文
    timestamp = models.DateTimeField()     #时间戳
admin.site.register(BlogPost)          #注册要管理的数据对象

(2)Template层

1、负责怎么样显示数据

2、说白了,就是利用一些格式化的html文件,使数据按照要求显示(显示在哪里,怎么显示等等)

3、需要在工程目录下,建立templates文件夹,然后在setting.py中设置好templates目录的路径。然后在此目录中建立所需html文件。

在应用中,我们要制作一个显示所有条目(title)的页面。

list.html

<html>
    <body>
        <h1>博客条目列表:</h1>
        {% for list in title_array %}
        <p> list.item_title </p>
    </body>
</html>

(3)View层

1、django中的view层是用于控制要显示什么数据

2、我们能看到的就是views.py文件

views.py(可以是任意名字)
既然是要控制显示的数据,那么要显示之前的blog数据呢?比如列出所有的title

from django.shortcuts import render_to_response
from myblog.blog.models import BlogPost

def list_title(request):
    title_array = []
    for title_data in BlogPost.objects.all():
        title_da = {}
        title_da[“item_title”] = title_data.title
        title_array.append( title_da )
    return render_to_response(‘list.html’, {‘title_array’ : title_array}) #返回到list.html页面一个title_array的对象

(4)串联
  最后就差URLconf把模型,模板和视图串联起来了。

在urls.py文件中:

from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^list/$', myblog.blog.views),
)

(5)结果

在浏览器中输入127.0.0.1:8000/list

1、Django会根据urls.py文件找到myblog文件夹下blog目录中的views.py文件中list_title函数

2、根据model.py文件找到数据库中BlogPost表中title列,并输出到list.html文件中

3、最后浏览器渲染出我们所需的网页。


2.4 Django整体运行过程
这里写图片描述
1. Web服务器收到一个http请求

2. Django把web服务器传过来的请求转换成一个请求对象

3. Django在URLconf里查找正确的视图函数

4. 调用这个视图函数,参数为请求对象以及任何捕捉到的URL参数

5. 然后视图会创建并返回一个响应对象

6. Django将这个响应对象转换成web服务器可以理解的格式

7. Web服务器将响应发送给客户端
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容