本文将介绍Django模版系统的语法。如果您需要更多该系统如何工作的技术细节,以及希望扩展它,请浏览 The Django template language: for Python programmers.Django模版语言的设计致力于在性能和简单上取得平衡。它的设计使习惯于使用HTML的人也能够自如应对。如果您有过使用其他模版语言的经验,像是 Smarty 或者 Jinja2, 那么您将对Django的模版语言感到一见如故。
随着 Python 的火热,这款由 Python 编写的Web框架也随之崛起。制作 Wiki 版 Django 文档是为了更好的支持Django 文档协作翻译小组的翻译工作。
模板层提供了设计友好的语法来展示信息给用户。 了解其语法可以让设计师知道如何使用,让程序员知道如何扩展:
这篇文档介绍了Django自带的所有中间件组件。 要查看关于如何使用它们以及如何编写自己的中间件,请见中间件使用指导。可用的中间件缓存中间件class UpdateCacheMiddleware[source]class FetchFromCacheMiddleware[source]开启全站范围的缓存。 如果开启了这些缓存,任何一个由Django提供的页面将会被缓存,缓存时长是由你在CACHE_MIDDLEWARE_SECONDS配置中定义的。
中间件是一个介入Django的请求和响应的处理过程中的钩子框架。它是一个轻量级,底层的“插件”系统,用于在全局修改Django的输入或输出。中间件组件责任处理某些特殊的功能。例如,Django包含一个中间件组件,AuthenticationMiddleware ,使用会话将用户和请求关联。这篇文档讲解了中间件如何工作,如何激活中间件,以及如何编写自己的中间件。
这篇文档阐述了如何通过使用Django视图动态输出PDF。这可以通过一个出色的、开源的Python PDF库ReportLab来实现。动态生成PDF文件的优点是,你可以为不同目的创建自定义的PDF -- 这就是说,为不同的用户或者不同的内容。例如,Django在kusports.com上用来为那些参加March Madness比赛的人,生成自定义的,便于打印的 NCAA 锦标赛晋级表作为PDF文件。
这篇文档阐述了如何通过使用Django视图动态输出CSV (Comma Separated Values)。 你可以使用Python CSV 库或者Django的模板系统来达到目的。使用Python CSV库Python自带了CSV库,csv。在Django中使用它的关键是,csv模块的CSV创建功能作用于类似于文件的对象,并且Django的HttpResponse对象就是类似于文件的对象。这里是个例子:import csvfrom django.
这里的索引提供基于类的视图的另外一种组织形式。对于每个视图,在类继承树中有效的属性和方法都显示在该视图的下方。按照行为进行组织的文档,参见基于类的视图。
基于类的视图的API 参考。另请参见基于类的视图 的简介。
表单的处理通常有3 个步骤:初始的的GET (空白或预填充的表单)带有非法数据的POST(通常重新显示表单和错误信息)带有合法数据的POST(处理数据并重定向)你自己实现这些功能经常导致许多重复的样本代码(参见在视图中使用表单)。为了避免这点,Django 提供一系列的通用的基于类的视图用于表单的处理。基本的表单根据一个简单的联系人表单:#forms.
编写Web应用可能是单调的,因为你需要不断的重复某一种模式。 Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历这种厌烦。Django的通用视图被开发用来消除这一痛苦。它们采用某些常见的习语和在开发过 程中发现的模式然后把它们抽象出来,以便你能够写更少的代码快速的实现基础的视图。
视图是一个可调用对象,它接收一个请求然后返回一个响应。这个可调用对象可以不只是函数,Django 提供一些可以用作视图的类。它们允许你结构化你的视图并且利用继承和混合重用代码。后面我们将介绍一些用于简单任务的通用视图,但你可能想要设计自己的可重用视图的结构以适合你的使用场景。完整的细节,请参见基于类的视图的参考文档。
如果你需要提供自定义文件存储 – 一个普遍的例子是在某个远程系统上储存文件 – 你可以通过定义一个自定义的储存类来实现。你需要遵循以下步骤:1. 你的自定义储存类必须是django.core.files.storage.Storage的子类:from django.core.files.storage import Storageclass MyStorage(Storage): ...2. Django必须能够不带任何参数来实例化你的储存类。
这篇文档描述了Django为那些用户上传文件准备的文件访问API。底层的API足够通用,你可以使用为其它目的来使用它们。如果你想要处理静态文件(JS,CSS,以及其他),参见管理静态文件(CSS和图像)。通常,Django使用MEDIA_ROOT和 MEDIA_URL设置在本地储存文件。下面的例子假设你使用这些默认值。
关注时代Java