django.core.files模块及其子模块包含了一些用于基本文件处理的内建类。File类class File(file_object)File 类是Python file 对象的一个简单封装,并带有Django特定的附加功能。需要表示文件的时候,Django内部会使用这个类。File对象拥有下列属性和方法:name含有MEDIA_ROOT相对路径的文件名称。size文件的字节数。file这个类所封装的,原生的file 对象。
当Django在处理文件上传的时候,文件数据被保存在request. FILES (更多关于 request 对象的信息 请查看 请求和响应对象)。这篇文档阐述了文件如何上传到内存和硬盘,以及如何自定义默认的行为。警告允许任意用户上传文件是存在安全隐患的。更多细节请在用户上传的内容中查看有关安全指导的话题。基本的文件上传考虑一个简单的表单,它含有一个FileField:# In forms.
由于Django是在一个快节奏的新闻编辑室环境下开发出来的,因此它被设计成让普通的网站开发工作简单而快 捷。以下简单介绍了如何用 Django 编写一个数据库驱动的Web应用程序。本文档的目标是给你描述足够的技术细节能让你理解Django是如何工作的,但是它并不表示是一个新手指南或参考目录 – 其实这些我们都有!
标准的HttpResponse 对象是静态的结构。在构造的时候提供给它们一个渲染之前的内容,但是当内容改变时它们却不能很容易地完成相应的改变。然而,有时候允许装饰器或者中间件在响应被构造之后修改它是很有用的。例如,你可能想改变使用的模板,或者添加额外的数据到上下文中。TemplateResponse 提供了实现这一点的方法。
有几个Django 的内建视图在编写视图 中讲述,文档的其它地方也会有所讲述。开发环境中的文件服务器static.serve(request, path, document_root, show_indexes=False)在本地的开发环境中,除了你的项目中的静态文件,可能还有一些文件,出于方便,你希望让Django 来作为服务器。serve() 视图可以用来作为任意目录的服务器。
Django为视图提供了数个装饰器,用以支持相关的HTTP服务。允许的HTTP 方法django.views.decorators.http 包里的装饰器可以基于请求的方法来限制对视图的访问。若条件不满足会返回 django.http.HttpResponseNotAllowed。require_http_methods(request_method_list)[source]限制视图只能服务规定的http方法。用法:from django.views.decorators.
django.shortcuts 收集了“跨越” 多层MVC 的辅助函数和类。 换句话讲,这些函数/类为了方便,引入了可控的耦合。renderrender(request, template_name[, context][, context_instance][, content_type][, status][, current_app][, dirs][, using])[source]结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。
一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你的Python目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。
简洁、优雅的URL 模式在高质量的Web 应用中是一个非常重要的细节。Django 允许你任意设计你的URL,不受框架束缚。不要求有.php 或.cgi,更不会要求类似0,2097,1-1-1928,00 这样无意义的东西。参见万维网的发明者Berners-Lee 的Cool URIs don’t change,里面有关于为什么URL 应该保持整洁和有意义的卓越的论证。
Django 具有“视图”的概览,用于封装负责处理用户请求及返回响应的逻辑。通过下面的链接可以找到你需要知道的所有关于视图的内容:
Django的数据库层提供了很多方法来帮助开发者充分的利用他们的数据库。这篇文档收集了相关文档的一些链接,添加了大量提示,并且按照优化数据库使用的步骤的概要来组织。性能优先作为通用的编程实践,性能的重要性不用多说。弄清楚你在执行什么查询以及你的开销花在哪里。你也可能想使用外部的项目,像django-debug-toolbar,或者直接监控数据库的工具。
当你首次建立一个应用的时候,为你的数据库预先安装一些硬编码的数据,是很有用处的。 有几种方法可以让Django自动创建这些数据:你可以通过fixtures提供初始数据,或者提供一个包含初始数据的sql文件。通常来讲,使用fixtrue更加简洁,因为它是数据库无关的,而使用sql初始化更加灵活。提供初始数据的fixturesfixture是数据的集合,让Django了解如何导入到数据库中。
虽然Django最适合用来开发新的应用,但也可以将它整合到遗留的数据库中。Django包含了很多工具,尽可能自动化解决这类问题。这篇文章假设你了解Django的基础部分,它们在教程中提及。一旦你的Django环境建立好之后,你可以按照这个大致的流程,整合你的现有数据库。向Django提供你的数据库参数你需要告诉Django你的数据库连接参数,以及数据库的名称。
New in Django 1.8.下面记述的类为用户提供了一些方法,来在Django中使用底层数据库提供的函数用于注解、聚合或者过滤器等操作。函数也是表达式,所以可以像聚合函数一样混合使用它们。我们会在每个函数的实例中使用下面的模型:class Author(models.Model): name = models.CharField(max_length=50) age = models.
关注时代Java