Django学习01---基本介绍与运行方式
一、Django基本介绍
1、django优点与一些基本概念
- Django的主要目的是简便、快速地开发数据库驱动的网站——动态网站。
- Django强调代码复用,多个组件可以方便地以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件。
- Django强调快速开发,DRY是准则。
- 基于MVC(更确切的说是MTV)
- 用户向web服务器请求一个文档
- Web服务器随即获取或生成这个文档
- 服务器再把结果返回给浏览器
- 浏览器将这个文档渲染出来
??减少劳动量,节约成本,提高开发效率,实现快速开发!
(2)为什么要快速开发?
??你还可以有余力开发第二个版本,提高市场竞争力
??准则:DRY,Don’t Repeat Yourself
二、设计模式
1、MVC MVC把web分为数据模型,控制器和视图三层,可以使业务逻辑与数据表现分开;说白了,美工搞美工的,后台搞后台的,互不干扰,发挥各自优势。
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
- Model(模型)表示应用程序核心(比如数据库记录列表)。
- View(视图)显示数据(数据库记录)。
- Controller(控制器)处理输入(写入数据库记录)。
文章图片
MVC模式介绍
- M ->model,数据模型
- T->template,模板
- V->view,视图
文章图片
django的MTV 2.2 Django的四个核心组件 【Django学习01---基本介绍与运行方式】(1) 基于正则表达式的URL分发器
(2) 视图处理系统
(3) 模板系统
(4) 数据模型和数据库之间的媒介ORM
2.3 Django是MTV分层 (1)Model层
1、使用的是ORM2、我们所能控制的就是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
博客条目列表:
{% for list in title_array %} list.item_title
(3)View层
1、django中的view层是用于控制要显示什么数据2、我们能看到的就是views.py文件views.py(可以是任意名字)
既然是要控制显示的数据,那么要显示之前的blog数据呢?比如列出所有的titlefrom django.shortcuts import render_to_response
from myblog.blog.models import BlogPostdef 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 adminurlpatterns = 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服务器将响应发送给客户端
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- django-前后端交互
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)