[Django入门知识浅介]Django框架里的MVC思想
来源:互联网 发布:青岛方特梦幻王国知乎 编辑:程序博客网 时间:2024/04/30 13:10
注:以下内容转载自 现代魔法学院 网站的Django框架里的MVC思想 一文,仅供学习使用。
让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同。 下面就是通过使用Django来完成以上功能的例子:首先,我们分成4个Python的文件,(models.py , views.py , urls.py ) 和html模板文件 (latest_books.html )。
models.py:
# models.py (the database tables)from django.db import modelsclass Book(models.Model):name = models.CharField(max_length=50)pub_date = models.DateField()views.py:
# views.py (the business logic)from django.shortcuts import render_to_responsefrom models import Bookdef latest_books(request):book_list = Book.objects.order_by('-pub_date')[:10]return render_to_response('latest_books.html', {'book_list':book_list})urls.py:
# urls.py (the URL configuration)from django.conf.urls.defaults import *import viewsurlpatterns = patterns('',(r'^latest/$', views.latest_books),)latest_books.html:
# latest_books.html (the template)<html><head><title>Books</title></head><body><h1>Books</h1><ul>{% for book in book_list %}<li>{{ book.name }}</li></ul></body></html>
不用关心语法细节,只要用心感觉整体的设计。这里只关注分割后的几个文件:
- models.py 文件主要用一个 Python 类来描述数据表。称为模型(model) 。运用这个类,你可以通过简单的 Python 代码来创建、检索、更新、删除数据库中的记录而无需写一条又一条的SQL语句。
- views.py文件包含了页面的业务逻辑。latest_books()函数叫做视图。
- urls.py 指出了什么样的 URL 调用什么的视图。在这个例子中 /latest/ URL 将会调用 latest_books() 这个函数。 换句话说,如果你的域名是example.com,任何人浏览网址http://example.com/latest/将会调用latest_books()这个函数。
- latest_books.html 是 html 模板,它描述了这个页面的设计是如何的。使用带基本逻辑声明的模板语言,如{% for book in book_list %}
结合起来,这些部分松散遵循的模式称为模型-视图-控制器(MVC)。 简单的说, MVC 是一种软件开发的方法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来。
这种设计模式关键的优势在于各种组件都是松散结合的。这样,每个由 Django驱动的Web应用都有着明确的目的,并且可独立更改而不影响到其它的部分。比如,开发者更改一个应用程序中的 URL 而不用影响到这个程序底层的实现。设计师可以改变 HTML 页面的样式而不用接触 Python 代码。数据库管理员可以重新命名数据表并且只需更改一个地方,无需从一大堆文件中进行查找和替换。
0 0
- [Django入门知识浅介]Django框架里的MVC思想
- Django框架里的MVC思想
- Django框架里的MVC思想
- Django框架里的MVC思想MVC 设计模式
- [Django入门知识浅介]Python Web框架(Django)的必要性
- [Django入门知识浅介]Django的一些优缺点评析
- [Django入门知识浅介]关于Python与Django的一些背景知识
- [Django入门知识浅介]用Django实现动态URL
- [Django入门知识浅介]先了解一下Django的历史
- [Django入门知识浅介]Django的搜索路径与Import机制
- [Django入门知识浅介]Django是如何处理URL请求的
- [Django入门知识浅介]第一个Django程序:Hello World
- [Django入门知识浅介]再写一个Django动态程序
- Django 框架入门学习
- Django的设计思想
- Django的MVC结构
- python+django MTV框架 和php MVC框架的不同之处
- python web框架django入门
- HDU 4464 Browsing History
- Bitmap,Drawable,byte间的相互转化
- Play on Words
- 励精图治---Concurrency---怎么测??
- 测试博客
- [Django入门知识浅介]Django框架里的MVC思想
- 正则表达式分组、断言
- mac下修改mysql的默认字符集为utf8
- python中单,双引号和三个双引号的区别
- DB2的简单的体系结构
- Murano之:集成docker
- rabbitmq 服务器管理工具 -rabbitmqadmin
- JSP有三大指令
- Rabbitmq Durability and related matters