前 言
在2017年和2018年分别出版了《Python 3.5从零开始学》和《Python 3.7从零开始学》两本书,很多读者朋友看后都问我是否可以再写一本Python进阶的书籍。起初自己并没有往这个方向继续写作的意愿,Python进阶的书籍写起来并不容易,需要长久的技术积累才可以写出一本优质的书籍,否则容易误导读者。不过在这个思考过程中,发现并没有太多的书籍单独编写Python与数据库交互的内容。在慎思之下,感觉很多技术人员或许需要这样一本书,来帮助他们更好地实现Python与数据库的互动。特别对于那些刚入门Python或有一定Python基础的读者,这样一本专门讲解与数据库交互的图书应该对他们的技术进阶有一定的帮助。
在2018年,电子工业出版社找到我,询问可否出一些Python方面的教材,在细细思考下,列出了三本感觉可以编写的Python方面的书籍的提纲。
第一本是Python基础方面的,确定好内容提纲后,最后命名为《Python实用教程》(ISBN 978-7-121-35884-5),主要编写Python基础方面的内容。该书于2019年由电子工业出版社出版。
第二本是本书,命名为《Python实战之数据库应用和数据获取》,主要编写Python与数据库交互和数据获取的内容。
第三本书确定好内容提纲后,最后命名为《Python实战之数据分析与处理》(ISBN 978-7-121-36347-4),将详细讲解Numpy、Pandas和Matplotlib三方面的内容,并结合这三方面的内容讲解具体的数据分析与处理的实战项目,将帮助读者向人工智能方向迈进。这本书是帮助读者通往人工智能的最后“一公里”。
这三本书将打造成一个三部曲,三本之间有一定联系。“Python快乐学习班”将贯穿这三本书,每本书中,“Python快乐学习班”的学生都有一个关注的主线,并以这个主线作为基础,在不同的地点完成不同知识点的学习。
《Python实用教程》是以“Python快乐学习班”的学生去往Python库游玩作为主线,在Python库所游玩的每个景点都与各章的知识点紧密相关,通过旅游的触景生情加深对应章节内容的理解。
本书则以数字校园作为主线,在数字校园中,“Python快乐学习班”的学生将接触不同的数据库,学习关系型数据库(MySQL)和非关系型数据库(MongoDB)的基本知识和基本操作方式,并使用Python实现对不同数据库的操作。后面几章会引入数据爬虫的相关内容,最后以在音乐池中使用爬虫网爬取数据鱼作为结束。
《Python实战之数据分析与处理》一书将以智慧城市作为主线,有兴趣的读者可以在完成本书的阅读后,前去阅读。
由于本书主要面向的是有一定Python基础的读者,所以本书中没有Python基础相关的内容。没有Python基础的读者可以先阅读《Python实用教程》。当然,由其他作者编写的有关Python基础方面的书籍也可以。之所以推荐本人编写的图书,主要是因为本书的一些内容和本人编写的前面三本书有一定的联系,购买前面三本中的任何一本阅读,可以帮助你更快速理解本书的部分内容。
技术人员特别是编程人员掌握一定的数据库操作技术是非常有必要的。当然,研发人员不要求对数据库的操作达到大部分DBA的熟练程度,但需要可以完成在实现业务上对数据库的操作,就是掌握基本业务需求中的数据库操作。本书的目的是帮助没有数据库基础的读者掌握基本的数据库操作,借助一些简单项目,基本实现对数据库的增、删、改、查等操作。本书也可以帮助数据库基础薄弱的读者提升数据库的操作熟练度。
本书将关系型数据库和非关系型数据的介绍分开,先介绍关系型数据库(MySQL)的基本概念及Python操作MySQL数据库的基本示例,再介绍非关系型数据库(MongoDB)的基本概念及Python操作MongoDB的基本示例。后面具体涉及数据库操作的示例中则包含MySQL和MongoDB的操作。读者若不习惯其中一种数据库的操作方式,可以选择忽略这种数据库的操作,待有兴趣时再回看。
本书在写作过程中参考了众多参考书籍和网络资源,特别在当今的互联网环境下,很多热爱分享的技术人员在网络上分享了很多有用的信息,本书的编写过程中也从中受益颇多,在此对那些热爱分享的技术人员表示衷心的感谢。
本书的特色
本书主要介绍MySQL基础、MySQL的基本操作、MongoDB基础和操作、文件的读取、爬虫基础、网站数据爬取实战等内容,让读者掌握通过Python操作关系型和非关系型数据库的方法,并通过爬虫技术获取相关数据。
本书专门针对使用Python操作数据库的新手或刚入门者量身定做,是作者学习和使用Python操作数据库过程中的体会和经验总结,涵盖实际开发中基本的知识要点,内容详尽,代码可读性及可操作性强。
本书的另一个特色是,使用通俗易懂的描述和丰富的示例代码,并结合数字校园的一些事件,让本书的内容呈现尽可能生动有趣,让一些原本复杂的处理能通过另一种辅助解释得以简单化,使读者学起来轻松,充分感受到本书学习的乐趣和魅力。
本书的内容
本书共10章,各章内容安排如下:
第 1 章主要介绍一些数据库的发展历程及数据库的一些基本概念,为大家学习后续章节做一些铺垫。
第 2 章以IT大讲堂座位安排作为开端,而后主要讲解了MySQL的一些基本知识,及部分在实际应用中使用频率比较高的高级操作。
第3章以工作人员做会议安排,引出Python通过PyMySQL操作MySQL数据库的各种基本示例。主要讲解的是Python通过PyMySQL操作MySQL的各种基本示例,都是一些实战性的操作。
第 4 章网上选座示例作为开端,而后主体内容主要讲解的是SQLAlchemy中的一些基本概念及SQLAlchemy的基本操作。
第 5 章主要讲解通过SQLAlchemy具体操作MySQL数据库的一些基本使用。Python通过SQLAlchemy操作MySQL类似学生网上选座的操作。
第 6 章主要讲解了MongoDB的一些基本知识,包括MongoDB了解、MongoDB安装及MongoDB基本操作。MongoDB的操作犹如对mongo山上各种植物的操作。
第 7 章主要讲解的是通过pymongo模块操作MongoDB。通过pymongo如专业人员打理mongo山一样打理MongoDB库。
第 8 章主要讲解的是对各种文件数据的读取和写入,以及文档文件数据和关系型数据库(MySQL)及非关系型数据库(MongoDB)的交互。如选择合适的路线穿梭于数字校园一样选择合适的文档处理方式。
第 9 章主要介绍几个新的功能点及这几个新功能点的使用方式,并结合爬虫程序对这几个新功能点加以应用。简而言之,即数据爬取工具的打造。
第 10 章主要介绍通过爬取QQ音乐网站的数据,对前面所学内容做进一步巩固。同时通过该项目实现,了解网站数据的爬取。使用爬虫网,从音乐池中捕获数据鱼。
读者对象
有一定Python 3.x基础,但没有数据库基础或没有数据库实战经验的人员。
有Python基础,想进一步学习使用Python爬取数据的人员。
有一些Python基础后,想更进一步学习和了解Python 3.x应用于数据库的程序员。
Python 3.x网课、培训机构、中学及大专院校的学生。
关于本书
由我编写清华大学出版社出版的《Python 3.5 从零开始学》《Python 3.7 从零开始学》这两本书在市场上已经获得很多读者的欢迎,《Python 实用教程》一书已由电子工业出版社出版并投入于教学。
本书的适宜人群是有一定Python基础,但没有数据库基础或数据库基础非常薄弱的读者,对适宜人群的学历没有任何要求,只要你有兴趣即可,当然,也希望你是可以真正看懂本书内容的读者,否则对你而言,阅读本书就是浪费时间,本书可能会给你留下一个不好的印象。
本书在编写过程中尽量以简单易懂的语言进行文本内容的组织,书中难免有编写错误的地方,希望读者可以帮助指正。写书过程中虽然自己非常小心,但是基于自身学识和技术的局限,在对一些难点的语言描述上,依然会有所偏差或错误,望读者朋友能够理解,或是告知正确的描述方式,或是给予正确的指点,也可以帮助其他读者朋友及作者少走一些弯路,本人也将致以非常诚挚的谢意。
致谢
虽然已经有了三本书的编写经验,相对于前三本书,本书编写的内容是新的知识点,所应对的也是新的人群,所以在本书的写作过程中出现了很多新的困难以及写作方式上的困惑,好在这是一个信息互联的时代,这让笔者有机会参阅很多相关信息,也让很多困难得以较好地解决。
在写作过程中参考了一些相关资源上的写作手法,这些资源上有一些技术点使用了非常形象生动的方式来阐述,参考的内容主要包括《Python 3.5从零开始学》《Python 3.7从零开始学》《Python实用教程》以及W3C等资源。在此,对他们的编者表示真诚的感谢。
同时感谢刘艳老师,刘艳老师参与了本书几个章节的修改及校稿,对本书的一些内容做了指正和写作意见,在刘艳老师的帮助下,本书的编写进程有所提升。非常感谢刘艳老师的修改意见。
最后感谢《Python 3.5从零开始学》《Python 3.7从零开始学》读者们的鼓励和支持,正因为有你们通过QQ、邮件、博客留言等方式不断要求出一本高于基础内容的书籍,才有本书的面世。也希望你们依然保持不断求知的心态,保持不断要求自己往更高方向学习的热情,往更广阔的知识海洋不断探索。
CSDN技术博客:yuzhouliu
技术问答Email:jxgzyuzhouliu@163.com
随书源码地址:http://github.com/liuyuzhou/databasesourcecode