Django是MTV分层 View层 1、django中的view层是用于控制要显示什么数据 2、我们能看到的就是views.py文件 Django是MTV分层 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}) Django是MTV分层 最后就差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’), ) Django是MTV分层 好吧,列出title的网页算是完成了 在浏览器中输入:8000/list Django会根据urls.py文件找到myblog文件夹下blog目录中的views.py文件中list_title函数,然后根据model.py文件找到数据库中BlogPost表中title列,并输出到list.html文件中,最后浏览器渲染出我们所需的网页。 Django的过程 Django的过程 Web服务器收到一个http请求 Django把web服务器传过来的请求转换成一个请求对象 Django在URLconf里查找正确的视图函数 调用这个视图函数,参数为请求对象以及任何捕捉到的URL参数 然后视图会创建并返回一个响应对象 Django将这个响应对象转换成web服务器可以理解的格式 Web服务器将响应发送给客户端 Django一些可重用的模块 Django提供了很多可重用的模块 Django的modules机制是松耦合的,也就是说你可以很方便的插入这些模块 减少了多余的编写代码工作 Django一些可重用的模块 django-ratings django-ajax-validation django-google-analytics django-mailer django-queue-service django-announcements django-email-confirmation django-jits django-liveblogging django-atompub django-discussion django-galaxy django-messages django-audioplayer django-db-log django-evolution django-authopenid django-googlemap django-compress django-dynamic-media-serve django-avatar django-graphs django-oembed django-clevercss django-basic-blog django-microformats django-object-view-tracking django-chunks django-basic-library django-tagging django-navbar django-ads django-basic-people django-survey django-orm-cache django-rest-interface django-basic-places django-voting djangocms django-registration django-cron django-wiki django-photologue django-mobil