下面介绍几种Python 连接 MySQL 的方法:

MySQL-python

MySQL-python 又叫 MySQLdb,是 Python 连接 MySQL 最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持 Python2.x,而且安装的时候有很多前置条件,因为它是基于C开发的库,在 Windows 平台安装非常不友好,经常出现失败的情况,现在基本不推荐使用,取代的是它的衍生版本。

Mysqlclient

:由于

MySQL-python 年久失修,后来出现了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同时支持 Python3.x,是 Django ORM的依赖工具,如果你想使用原生 SQL 来操作数据库,那么推荐此驱动。安装方式和 MySQLdb 是一样的

PyMySQL

PyMySQL 是纯 Python 实现的驱动,速度上比不上 MySQLdb,最大的特点可能就是它的安装方式没那么繁琐,同时也兼容 MySQL-python

Peewee

:写原生

SQL 的过程非常繁琐,代码重复,没有面向对象思维,继而诞生了很多封装 wrapper 包和 ORM 框架,ORM 是 Python 对象与数据库关系表的一种映射关系,有了 ORM 你不再需要写 SQL 语句。提高了写代码的速度,同时兼容多种数据库系统,如sqlite, mysql、postgresql,付出的代价可能就是性能上的一些损失。如果你对 Django 自带的 ORM 熟悉的话,那么 peewee的学习成本几乎为零。它是 Python 中是最流行的 ORM 框架。

SQLAlchemy

:如果想找一种既支持原生

SQL,又支持 ORM 的工具,那么 SQLAlchemy 是最好的选择,它非常接近 Java 中的 Hibernate 框架。

0 0 0

Python相对于其他语言来说,是很适合初学者进行学习的,通俗易懂好上手,可以很快做出一定的成果,python语言的难度比C++低很多,python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。所以初学者适合学习python。

python自身是在其他语言的根基之上衍生出来的,包含了C++、ABC、Algol-68、SmallTalk、Unix shell 和其他的脚本语言。不同于其他编程语言,python在学习之初并不需要其他复杂的知识背景,就可以入手学习。 同时,python近来的热度也越来越高。因为python 的实用性非常强,现在以及未来,人工智能AI 编程的主流工具都是python,所以python更适合初学者。

后端开发、前端开发、爬虫开发、人工智能、金融量化分析、大数据、物联网等,python应用无处不在,搜索引擎Google的核心代码是python完成的、迪士尼公司动画生成的Unix版本都内建了python环境支持、国内知名的豆瓣网是使用python技术建立……可见python应用开发技术在各公司都有大规模使用,python的发展前景是不可估量的。

python为脚本语言,需要边解释边运行。好处是不需要编译,可以直接运行。坏处是由于边解释边运行,运行效率慢。C++为编译语言需要先编译再运行。好处是运行速度快,尤其对于大型程序,效率提升明显。坏处是程序更新后,需要重新编译运行,不是很方便。

python语法简单,语句简洁,使用方便,上手容易,而且不需要编译可以即使运行,尤其在Jupyter Notebook上运行,那叫一个得心应手。C++语法复杂,格式要求高,使用不便,上手较难。

python在人工智能领域占据有压倒性的优势,有众多的库支持,大多数第三方库都是基于python开发或者提供完整的API。

当然,学习哪门编程语言还要结合自己的职业发展方向与兴趣爱好,不要单纯为了学习工具而学习。

0 0 0

Python相对于其他语言来说,是很适合初学者进行学习的,通俗易懂好上手,可以很快做出一定的成果,python语言的难度比C++低很多,python是一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。所以初学者适合学习python。

python自身是在其他语言的根基之上衍生出来的,包含了C++、ABC、Algol-68、SmallTalk、Unix shell 和其他的脚本语言。不同于其他编程语言,python在学习之初并不需要其他复杂的知识背景,就可以入手学习。 同时,python近来的热度也越来越高。因为python 的实用性非常强,现在以及未来,人工智能AI 编程的主流工具都是python,所以python更适合初学者。

后端开发、前端开发、爬虫开发、人工智能、金融量化分析、大数据、物联网等,python应用无处不在,搜索引擎Google的核心代码是python完成的、迪士尼公司动画生成的Unix版本都内建了python环境支持、国内知名的豆瓣网是使用python技术建立……可见python应用开发技术在各公司都有大规模使用,python的发展前景是不可估量的。

python为脚本语言,需要边解释边运行。好处是不需要编译,可以直接运行。坏处是由于边解释边运行,运行效率慢。C++为编译语言需要先编译再运行。好处是运行速度快,尤其对于大型程序,效率提升明显。坏处是程序更新后,需要重新编译运行,不是很方便。

python语法简单,语句简洁,使用方便,上手容易,而且不需要编译可以即使运行,尤其在Jupyter Notebook上运行,那叫一个得心应手。C++语法复杂,格式要求高,使用不便,上手较难。

python在人工智能领域占据有压倒性的优势,有众多的库支持,大多数第三方库都是基于python开发或者提供完整的API。

当然,学习哪门编程语言还要结合自己的职业发展方向与兴趣爱好,不要单纯为了学习工具而学习。

0 0 0

C/C++ 有强烈的学术背景,Java / C# 有强烈的商业背景,这些背景确保了有足够多的人和公司对这些语言有信心,从而促进了这些语言的大规模应用,之后就靠惯性了。java是有些啰嗦,不过ide能帮忙减少80%以上的键盘敲击,同时静态分析能帮忙解决80%以上的低级错误,代码提示能帮忙减少80%以上的查文档时间,至于强大的重构能力更是python望尘莫及的,所以只要是稍微大的项目,用java很可能比python开发速度更快 1. 动态语言相对来说速度慢些.2. 涉及到一些大的工程,Java/C/C++来说可以系统性的更准确高效的解决问题.3. 当越到低层和硬件关系更近时, C/C++可以更好的完成任务.直接编译成机器语言.

而Python和Ruby需要运行环境.当然, Python等动态语言用来做一个工具处理一些日常数据还是很好用的,或者用Python Django做网站.但一涉及到大型工程就需要用Java/C/C++了,工具是用来解决问题的,能比较好的解决问题就可能被用的多,而不是说这个工具有多精致 越是复杂的项目,使用静态语言可以利用编译器更早的发现和避免问题。这并不是说动态语言并不能用于大型项目,但是在超过一定规模之后,动态语言轻便灵活的优势就会被重构时的困难给抵消掉。另一个原因是性能上的,同理,也不是动态语言写不出高效的代码,而是花在优化上的时间会更多,而团队人多了水平难免参差不齐,不如静态语言稳妥。

哪个工具好,要看解决的问题是什么,最近什么技术流行,只能说明这个技术适用的问题域变成了普遍问题而已。

0 0 0

Python只是一个帮助我们实现需求的工具,当然目前也已经发展的非常成熟,自2010年初以来一直蓬勃发展至今,在流行程度上,也超越了C、C++、Java等老牌编程语言。也得到了广泛应用,但是并不会对你未来的职业发展产生决定性的影响,所以学习一门工具建议在职业规划需求的基础上进行,虽然Python从90年代便已出现,这不仅意味着它有足够的时间来发展,还意味着拥有一个庞大而强有力的社区支持。所以你在用Python编程的时候,如果遇到了任何问题,只要网上搜索一下,大概率就能解决掉。其次,Python对于初学者来说是友好的。对于这一点,并不是说它存在了几十年,给了程序员们充足的时间来写使用教程。而是Python的语法易读性特别好。例如你不需要指定数据类型,只要声明一个变量,Python会根据上下文,理解这个变量是属于整数、浮点数、布尔值等等。这对于初学者来说优势是巨大的。如果你用过C++,你就有可能体会到这样的痛苦:程序跑不出来,可能仅仅是因为把一个浮点数指定成了整数……以及,如果对比着读过Python和C++的代码,你就能深刻的体会到Python代码理解起来是有多么容易。Python从出现至今,开发人员几乎在各个领域、用途方面开发了包(package),想处理数字、向量和矩阵?Numpy是的你首选。

想进行技术和工程方面的计算?SciPy了解一下。想在数据处理和分析领域大展身手?Pandas值得一试。想涉足人工智能?Scikit-Learn等,当然,没有一个技术是完美的,Python也不例外,比如第一,速度 (Speed)。平均来说,用Python运行一个任务所需要的时间,是其他语言的2-10倍,其中一个原因就是它是动态类型。另一个原因是Python一次只能执行一个任务。这是灵活数据类型的结果——Python需要确保每个变量只有一个数据类型,故而不支持并行进程。第二,作用域 (Scope)。最初,Python是动态确定作用域的。这基本上就意味着,要对表达式求值,编译器首先需要搜索当前块,然后依次搜索所有调用函数。

动态作用域的问题在于,每个表达式都需要在每个可能的上下文中进行测试。这个是相当繁琐的过程,这也就是为什么大多数现代编程语言使用静态作用域的原因。第三,Lambda。

尽管Python内部的灵活性很好,但Lambda的使用还是相当有限制的。Lambda只能是Python中的表达式,而不能是语句。第四,空白符 (Whitespaces)。在Python中,你可以用空格和缩进来表示不同级别的代码,很容易理解。

0 0 0

在python中,很多时候需要进行真假判断,也就是会经常用到布尔型变量,在python中,表示真假的不一定要用true和false,也可以通过数字来表示,其中0表示假,即0与false同义,其他的非0 数字表示真,即与true同义,那么,if 2就表示如果是真的,则执行以下操作。

If 结构主要是让程序做出选择,并根据不同的情况执行不同的操作,包括以下用法:

(1)只有 if 进行判断desserts = ['ice cream', 'chocolate', 'apple crisp', 'cookies']

favorite_dessert = 'apple crisp'

hate_dessert = 'chocolate'

for dessert in desserts:

if dessert == favorite_dessert:

print("%s is my favorite dessert!" % dessert.title())

(2)if - else 进行判断for dessert in desserts:

# 比较运算符(== 相等 、!= 不等、> 大于、>= 大于等于、< 小于、<=小于等于)if dessert == favorite_dessert:

print("%s is my favorite dessert!" % dessert.title())

# elif => else + if 当前值不符合上面 if 的判断条件,执行 elif 的判断条件

else:

print("I like %s." % dessert)

(3) if - elif - else 进行判断,其中 elif 不是唯一的,可以根据需要添加,实现更细粒度的判断

# 对不同的 dessert 输出不完全相同的结果for dessert in desserts:

# 比较运算符(== 相等 、!= 不等、> 大于、>= 大于等于、< 小于、<=小于等于)if dessert == favorite_dessert:

print("%s is my favorite dessert!" % dessert.title())

# elif => else + if 当前值不符合上面 if 的判断条件,执行 elif 的判断条件

elif dessert == hate_dessert:

print("I hate %s." % dessert)

# 当前值不符合上面所有的判断条件,就执行 else 里的语句

# 当然如果这个else 不需要的话,可以不写

else:

print("I like %s." % dessert)

值得注意的一点是:当整个 if 判断满足某一个判断条件时,就不会再继续判断该判断条件之后的判断

(4)特殊的判断条件if 0: # 其他数字都返回 True

print("True.")

else:

print("False.") # 结果是这个

if '': #其他的字符串,包括空格都返回 True

print("True.")

else:

print("False.") # 结果是这个

if None: # None 是 Python 中特殊的对象

print("True.")

else:

print("False.") # 结果是这个

if 1:

print("True.") # 结果是这个

else:

print("False.")

if -1:

print("True.") #结果是这个

else:

print("False.")

0 0 0