Full Stack Python logo Full Stack Python

全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码

MySQL

MySQL 是 关系型数据库 的一种开源实现,它用于存取数据。

MySQL logo.

MySQL 还是 PostgreSQL?

MySQL 是一款可运用于 Python Web 应用的开源数据库实现。MySQL 相比 PostgreSQL 更易入门。但是,Python Web 开发人员通常更偏爱 PostgreSQL 的设计,特别在随着应用程序的演进需要进行数据迁移的时候。

MySQL 是对 关系型数据库 概念的一种实现。 在 数据 那一章学习更多相关知识,或者到 总目录页 了解所有主题。

MySQL 的 Python 驱动器

在 Python 应用中访问 MySQL 需要一个数据库驱动器(也叫作 “连接器”)。当然驱动器可以作为应用的一部分进行编写,但是实践中多数开发人员会采用一个现成的开源驱动器。

随着 Python 3 的引入,MySQL 驱动器出现了一个大问题。 MySQLdb 是最流行的库之一,但是它现在无法与 Python 3 兼容,并且还没有更新计划。于是出现了 MySQLdb 的一个分支,叫 mysqlclient,它增加了对 Python 3 的兼容性。

mysqlclient 分支很不错,因此当前的 MySQLdb 用户在升级到 Python 3 后,在现有项目中只需用 mysqlclient 代替即可。但是,当查找该用哪个 Python 驱动器连接 MySQL 时,该分支经常会造成些许困惑。PostgreSQL 社区对 Python 驱动提供了更好的支持,因此很多开发者决定选用 PostgreSQL

抛开驱动器的支持问题,当然完全可以在 Python 3 Web 应用中选用 MySQL 作为后端。这里是一份驱动器列表,并附有对 Python 2、3 或两者的支持度的说明。

  • mysqlclient 是一个 MySQLdb 分支,它支持 Python 2 和 3。

  • MySQL 连接器 是 Oracle 的 “官方” (Oracle 当前拥有 MySQL)Python连接器。该驱动器支持 Python 2 和 3,但是确保到 版本指南 上了解哪个发行版与哪个 Python 版本兼容。

  • MySQLdb 支持 Python 2,在大家还没有开始迁移到 Python 3 之前,经常运用于 Python Web 应用程序中。

  • PyMySQL 用纯 Python (没有 C 低层代码)实现,意在成为 MySQLdb 的直接替代品。但是,该驱动器还不支持一些 MySQL API,因此你的应用是否能用该连接器将取决于你使用了哪些接口。

哪些组织使用 MySQL?

该数据库已实际部署在了一些高流量的网站上,如 TwitterFacebook许多其它大型机构。但是,因开发 MySQL 的公司 MySQL AB,已经被 Sun Microsystems (它后来又被 Oracle 收购)收购,像 WikipediaGoogle 等都开始不用该数据库了。MySQL 仍然是一个可行的数据库选项,但是我一直推荐还没有学过 MySQL 的 Python 开发人员学习 PostgreSQL。

针对 Python 的 MySQL 相关资源

通用 MySQL 相关资源

学习有关数据的更多知识,还是学习 Web 框架知识?

告诉我有关标准关系型数据库的知识。

那些时髦的开发者一直谈论的 NoSQL 数据存储到底是什么?

我想学习如何用框架创建 Python Web 应用。

#### 在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。

The Full Stack Python Guide to Deployments 想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.

邮件获取更新

##### 注册以便每月能收到一份邮件资料,内容包含本站的主要更新和 Python 教程。

目录

1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.

MySQL

重要的更新内容会通过 Twitter 账号@fullstackpython发布。


需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。

Chapters

1. 简介2. 开发环境3. 核心语言4. Web 开发5. 数据 » MySQL 6. Web APIs7. 部署8. 测试9. Meta …or view the full table of contents.


This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!

此网站由 @haiiiiiyun开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目