Python异常处理
一、异常 在程序运行过程中,总会遇到各种各样的问题和错误。有些错误是我们编写代码时自己造成的,比如语法错误、调用错误,甚至逻辑错误。还有一些错误,则是不可预料的错误,但是完全有可能发生的,比如文件不存在、磁盘空间不足、网络堵塞、系统错误等等。这些导致程序在运行过程中出现异常中断和退出的错误,我们统称为异常。大多数的异常都不会被程序处理,而是以错误信息的形式展……
Django时区问题
一、概述 当开启时区支持后,在内部使用时区相关的对象时,Django将时间用UTC格式存储到数据库中;并且在模板(templates)与表单(forms)中将时间转换为终端用户所在时区的时间。当你的用户生活在多个时区,并且你希望根据他们所在的位置显示当地时间时很有用。 另外即使你的网站仅在一个时区使用,仍然以UTC时间格式存储数据到数据库中是个好习惯。主要原……
Django REST framework Quickstart
一、Django Rest Framework Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包。 先说说REST:REST是一种Web API设计标准,是目前比较成熟的一套互联网应用程序的API设计理论。REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。Fie……
Django视图装饰器
Django为视图提供了数个装饰器,用以支持相关的HTTP服务。 1. 允许的HTTP方法 django.views.decorators.http包里的装饰器可以基于请求的方法来限制对视图的访问。若条件不满足会返回 django.http.HttpResponseNotAllowed。 require_http_methods(request_method……
使用Django form或api上传图片
对于Web应用程序,以便能够上传文件(资料图片,歌曲,PDF格式,文字……),它通常是很有用的。下面来看看如何使用Django上传图片。在开始开发图片上传之前,请确保Python的图像库(PIL)已经安装。现在来说明上传图片,我们这里使用Django form结合models的形式上传图片,实现以下几个功能: Model和Model……
Django表单(Form)
HTML表单是网站交互性的经典方式,本章将简单介绍Web表单的基本概念和如何用Django对用户提交的表单数据进行处理。在Web开发中除非你计划构建的网站和应用只是发布内容而不接受访问者的输入,否则你将需要理解并使用表单。Django提供广泛的工具和库来帮助你构建表单来接收网站访问者的输入,然后处理以及响应输入。 一、HTML表单 在HTML中,表单的作用是……
Django上传下载文件
一、简单文件上传实现 利用Django实现文件上传并且保存到指定路径下,其实并不困难,可以不需要用到django的forms,也不需要django的models,就可以简单实现上传功能。下面简单实现一下。 当Django在处理文件上传的时候,文件数据被保存在request.FILES。需要特别注意的是,只有当request方法是POST,且发送request……
Django Admin
一、Django Admin Django最强大的部分之一是自动生成的Admin界面。它读取模型中的元数据来提供一个强大的、生产环境就绪的界面,使内容提供者能立即用它向站点中添加内容。下面看一下如何激活,使用和定制Django的管理界面。 概述 通过使用startproject创建的默认项目模版中,Admin已启用。下面的一些要求作为参考: 1、添加 ……
Django用户认证详解
一、概述 Django从开始就带有一个用户认证系统;它处理用户账号、组、权限以及基于cookie的用户会话。 Django认证系统同时处理认证和授权。简单地讲,认证验证一个用户是否它们声称的那个人,授权决定一个通过了认证的用户被允许做什么。这里的词语“认证”同时指代这两项任务。 认证系统包含: 用户(Users) 权限(Permissions):二元(是/……
Django模型QuerySet API参考
一、QuerySet API介绍 一旦你建立好数据模型,Django会自动为你生成一套数据库抽象的API(QuerySet查询集方法),可以让你创建、检索、更新和删除对象。 Django使用一种直观的方式把数据库表中的数据表示成Python对象:一个模型类代表数据库中的一个表,一个模型类的实例代表这个数据库表中的一条特定的记录。使用关键字参数实例化模型实例来……
Django模型进阶
一、模型关系 显然,关系数据库的威力体现在表之间的相互关联。 Django提供了三种最常见的数据库关系:多对一(many-to-one),多对多(many-to-many),一对一(one-to-one)。 1.1 多对一 Django使用django.db.models.ForeignKey定义多对一关系。和使用其它字段类型一样:在模型当中把它做为一个类属……
Python模块:queue
一、Python queue Python queue模块有三种队列: 1、FIFO队列先进先出。 2、LIFO类似于堆,即先进后出。 3、还有一种是优先级队列级别越低越先出来。 针对这三种队列分别有三个构造函数: 1、class Queue.Queue(maxsize) FIFO 2、class Queue.LifoQueue(maxsize) LIFO ……