django 学前准备

Django的主要目的是简便、快速地开发数据库驱动的网站——动态网站。

Django强调代码复用,多个组件可以方便地以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件。

Django强调快速开发,DRY是准则。 基于MVC(更确切的说是MTV)

动态网站

用户向web服务器请求一个文档

Web服务器随即获取或生成这个文档

服务器再把结果返回给浏览器

浏览器将这个文档渲染出来

MVC

MVC把web分为数据模型,控制器和视图三层,可以使业务逻辑与数据表现分开;

说白了,美工搞美工的,后台搞后台的,互不干扰,发挥各自优势

 

Django 是MTV分成

Django遵循了MVC(model-view-controller)这个分层方式,

但是确切的说是MTV分层。

M->model,数据模型

T->template,模板

V->view,视图

django 的MTV分布

Django的四个核心组件

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

2 视图处理系统

3 模板系统

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

Model层

1、使用的是ORM

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

3、负责数据库管理

models.py文件

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

2、前面构件blog时:

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) #注册要管理的数据对象

Template层

1、负责怎么样显示数据

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

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

然后在此目录中建立所需html文件。

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

list.html

<html>

<body>

<h1>博客条目列表:</h1>

{% for list in title_array %}

<p> list.item_title </p>

</body

></html>

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})

最后就差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’),

)

好吧,列出title的网页算是完成了

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

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

然后根据model.py文件找到数据库中BlogPost表中title列,

并输出到list.html文件中,最后浏览器渲染出我们所需的网页

Django的过程

Web服务器收到一个http请求

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

Django在URLconf里查找正确的视图函数 调用这个视图函数,参数为请求对象以及任何捕捉到的URL参数

然后视图会创建并返回一个响应对象 Django将这个响应对象转换成web服务器可以理解的格式

Web服务器将响应发送给客户端

 

posted @ 2017-08-12 10:59  随风无义  阅读(141)  评论(0)    收藏  举报