Django:安全

Internet并不安全。现如今,每天都会出现新的安全问题。 我们目睹过病毒飞速地蔓延,大量被控制的肉鸡作为武器来攻击其他人,与垃圾邮件的永无止境的军备竞赛,以及许许多多站点被黑的报告。Django试图减轻这种难度。 它被设计为自动帮你避免一些web开发新手(甚至是老手)经常会犯的错误。 尽管如此,需要弄清楚,Django如何保护我们,以及我们可以采取哪些重要的方法来使得我们的代码更加安全。首先,

Django:集成已有的数据库和应用

Django最适合于所谓的green-field开发,即从头开始的一个项目,正如你在一块还长着青草的未开垦的土地上从零开始建造一栋建筑一般。 然而,尽管Django偏爱从头开始的项目,将这个框架和以前遗留的数据库和应用相整合仍然是可能的。 本章就将介绍一些整合的技巧。与遗留数据库整合Django的数据库层从Python代码生成SQL schemas—但是对于遗留数据库,你已经拥有SQL schem

Django:国际化

Django诞生于美国中部堪萨斯的劳伦斯,距美国的地理中心不到40英里。 像大多数开源项目一样,Djano社区逐渐开始包括来自全球各地的许多参与者。 鉴于Django社区逐渐变的多样性,国际化和本地化逐渐变得很重要。 由于很多开发者对这些措辞比较困惑,所以我们将简明的定义一下它们。国际化* 是指为了该软件在任何地区的潜在使用而进行程序设计的过程。 它包括了为将来翻译而标记的文本(比如用户界面要素和

Django:中间件

在有些场合,需要对Django处理的每个request都执行某段代码。 这类代码可能是在view处理之前修改传入的request,或者记录日志信息以便于调试,等等。这类功能可以用Django的中间件框架来实现,该框架由切入到Django的request/response处理过程中的钩子集合组成。 这个轻量级低层次的plug-in系统,能用于全面的修改Django的输入和输出。每个中间件组件都用于某

Django:django.contrib

Django标准库Django的标准库存放在 django.contrib 包中。每个子包都是一个独立的附加功能包。 这些子包一般是互相独立的,不过有些django.contrib子包需要依赖其他子包。在 django.contrib 中对函数的类型并没有强制要求 。其中一些包中带有模型(因此需要你在数据库中安装对应的数据表),但其它一些由独立的中间件及模板标签组成。django.contrib

Django:缓存机制

对于大多数网络应用来说,过载并不是大问题。 因为大多数网络应用并不是washingtonpost.com或Slashdot;它们通常是很小很简单,或者是中等规模的站点,只有很少的流量。 但是对于中等至大规模流量的站点来说,尽可能地解决过载问题是非常必要的。这就需要用到缓存了。缓存的目的是为了避免重复计算,特别是对一些比较耗时间、资源的计算。 下面的伪代码演示了如何对动态页面的结果进行缓存。为此,D

Django:会话、用户和注册

是时候承认了: 我们有意的避开了Web开发中极其重要的方面。 到目前为止,我们都在假定,网站流量是大量的匿名用户带来的。这当然不对。 浏览器的背后都是活生生的人(至少某些时候是)。 这忽略了重要的一点: 互联网服务于人而不是机器。 要开发一个真正令人心动的网站,我们必须面对浏览器后面活生生的人。很不幸,这并不容易。 HTTP被设计为”无状态”,每次请求都处于相同的空间中。 在一次请求和下一次请求之

Django:部署Django

本章包含创建一个django程序最必不可少的步骤 在服务器上部署它如果你一直跟着我们的例子做,你可能正在用runserver 但是runserver 要部署你的django程序,你需要挂接到工业用的服务器 如:Apache 在本章,我们将展示如何做,但是,在做之前我们要给你一个(要做的事的)清单.准备你的代码库很幸运,runserver 但是,在开始前,有一些**关闭Debug模式.我们在第2章,

Django:输出非HTML内容

到目前为止,我们的注意力都是放在常见 HTML 代码生成上,但是在这一章中,我们将会对使用 Django 生成其它格式的内容进行简要介绍。Django拥有一些便利的内建工具帮助你生成常见的非HTML内容:RSS/Atom 聚合文件站点地图 (一个XML格式文件,最初由Google开发,用于给搜索引擎提示线索)我们稍后会逐一研究这些工具,不过首先让我们来了解些基础原理。基础: 视图和MIME类型回顾

Django:数据模型高级进阶

在第5章里,我们介绍了Django的数据层如何定义数据模型以及如何使用数据库API来创建、检索、更新以及删除记录 在这章里,我们将向你介绍Django在这方面的一些更高级功能。相关对象先让我们回忆一下在第五章里的关于书本(book)的数据模型:如我们在第5章的讲解,获取数据库对象的特定字段的值只需直接使用属性。 例如,要确定ID为50的书本的标题,我们这样做:但是,在之前有一件我们没提及到的是表现