使用 Django 和 Python 开发 Web 站点: http://www.ibm.com/developerworks/cn/linux/l-django/
0. 简介:Django 项目是一个python定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
1. 地位:(百度百科)由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者[1]。
2. 架构设计
层次
|
职责
|
模型(Model),即数据存取层
|
处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
|
模板(Template),即表现层
|
处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
|
视图(View),即业务逻辑层
|
存取模型及调取恰当模板的相关逻辑。模型与模板之间的桥梁。
|
从以上表述可以看出Django 视图不处理用户输入,而 仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。
3设计哲学
-
对象关系映射 ( ORM,object-relational mapping):以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。
-
URL 分派:使用 正则表达式匹配URL,你可以设计任意的URL,没有框架的特定限定。像你喜欢的一样灵活
-
模版系统:使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。
-
表单处理:你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。
-
Cache系统:可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。
-
会话( session),用户登录与权限检查,快速开发用户会话功能。
-
国际化:内置 国际化系统,方便开发出多种语言的网站。
-
自动化的管理界面:不需要你花大量的工作来创建人员管理和更新内容。Django自带一个ADMIN site,类似于 内容管理系统。
4.工作机制
5.部署
6.文档
7.翻译一下主页:
The Django framework --- Django框架
Object-relational mapper--- 对象关系映射
Define your data models entirely in Python. You get a rich, dynamic database-access API for free — but you can still write SQL if needed.
在Python中确定数据模型,你可以获得丰富易用的动态数据库接口,也可以自己写SQL接口。
Automatic admin interface---自动管理界面
Save yourself the tedious work of creating interfaces for people to add and update content.Django does that automatically, and it's production-ready.
把自己从繁琐的界面设计中解放出来,Django为你自动完成。
Elegant URL design---优雅的URL设计
Design pretty, cruft-free URLs with no framework-specific limitations. Be as flexible as you like.
优美的设计,不令人讨厌的弹性设计。
Template system---模板系统
Use Django's powerful, extensible and designer-friendly template language to separate design, content and Python code.
使用Django有力的、可扩增的、设计友好的模板语言 完成设计、内容和编码。
Cache system---缓存系统
Hook into memcached or other cache frameworks for super performance — caching is as granular as you need.
更好表现的颗粒状的缓存系统
Internationalization---国际化
Django has full support for multi-language applications, letting you specify translation strings and providing hooks for language-specific functionality.
更有力的多语言支持,让你自由地翻译....
....................每次进步都得靠翻译..................