制作报表
# 制作报表 # 导出 Excel 报表 报表就是用表格、图表等格式来动态显示数据,所以有人用这样的公式来描述报表: 报表 = 多样的格式 + 动态的数据 有很多的三方库支持在 Python 程序中写 Excel 文件,包括 xlwt 、 xlwings 、 openpyxl 、 xlswriter 等,其中的 xlwt 虽然只支持写 xls 格式的 Excel 文件,但在性能方面的表现还是不错的。下面我们就以 xlwt 为例,来演示如何在 Django 项目中导出 Excel 报表。 安装 xlwt 。 pip install xlwt 导出包含所有老师信息的 Excel...
more...Cookie和Session
# Cookie 和 Session 我们继续来完成上一章节中的项目,实现 “用户登录” 的功能,并限制只有登录的用户才能投票。 # 用户登录的准备工作 我们先为实现用户登录做一些准备工作。 创建用户模型。之前我们讲解过如果通过 Django 的 ORM 实现从二维表到模型的转换(反向工程),这次我们尝试把模型变成二维表(正向工程)。 class User(models.Model): """用户""" no = models.AutoField(primary_key=True,...
more...静态资源和Ajax请求
# 静态资源和 Ajax 请求 # 加载静态资源 如果要在 Django 项目中使用静态资源,可以先创建一个用于保存静态资源的目录。在 vote 项目中,我们将静态资源置于名为 static 的文件夹中,在该文件夹包含了三个子文件夹:css、js 和 images,分别用来保存外部 CSS 文件、外部 JavaScript 文件和图片资源,如下图所示。 为了能够找到保存静态资源的文件夹,我们还需要修改 Django 项目的配置文件 settings.py ,如下所示: STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),...
more...Django快速上手
# Django 快速上手 Web 开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的 HTML 页面,随着网站规模和体量的增大,这种做法一定是非常糟糕的。为了解决这个问题,开发人员想到了用程序来为 Web 服务器生成动态内容,也就是说网页中的动态内容不再通过手动编写而是通过程序自动生成。最早的时候,这项技术被称为 CGI(公共网关接口),当然随着时间的推移,CGI 暴露出的问题也越来越多,例如大量重复的样板代码,总体性能较为低下等。在时代呼唤新英雄的背景下,PHP、ASP、JSP 这类 Web 应用开发技术在上世纪 90...
more...Python程序接入MySQL数据库
# Python 程序接入 MySQL 数据库 在 Python3 中,我们可以使用 mysqlclient 或者 pymysql 三方库来接入 MySQL 数据库并实现数据持久化操作。二者的用法完全相同,只是导入的模块名不一样。我们推荐大家使用纯 Python 的三方库 pymysql ,因为它更容易安装成功。下面我们仍然以之前创建的名为 hrs 的数据库为例,为大家演示如何通过 Python 程序操作 MySQL 数据库实现数据持久化操作。 # 建库建表 -- 创建名为hrs的数据库并指定默认的字符集 create database `hrs` default character set...
more...深入MySQL
# 深入 MySQL # 索引 索引是关系型数据库中用来提升查询性能最为重要的手段。关系型数据库中的索引就像一本书的目录,我们可以想象一下,如果要从一本书中找出某个知识点,但是这本书没有目录,这将是意见多么可怕的事情!我们估计得一篇一篇的翻下去,才能确定这个知识点到底在什么位置。创建索引虽然会带来存储空间上的开销,就像一本书的目录会占用一部分篇幅一样,但是在牺牲空间后换来的查询时间的减少也是非常显著的。 MySQL 数据库中所有数据类型的列都可以被索引。对于 MySQL 8.0 版本的 InnoDB 存储引擎来说,它支持三种类型的索引,分别是 B+ 树索引、全文索引和 R...
more...