
Python作为一个设计优秀的程序语言,现在已广泛应用于各种领域,依靠其强大的第三方类库,Python在各个领域都能发挥巨大的作用。
下面我们就来看一下python中常用到的库:
数值计算库:
1 NumPy
支持多维数组与矩阵运算,也针对数组运算提供大量的数学函数库。通常与SciPy和Matplotlib一起使用,支持比Python更多种类的数值类型,其中定义的最重要的对象是称为ndarray的n维数组类型,用于描述相同类型的元素集合,可以使用基于0的索引访问集合中元素。
2 SciPy
在NumPy库的基础上增加了众多的数学、科学及工程计算中常用的库函数,如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等,可进行插值处理、信号滤波,以及使用C语言加速计算。
3 Pandas
基于NumPy的一种工具,为解决数据分析任务而生。纳入大量库和一些标准的数据模型,提供高效地 *** 作大型数据集所需的工具及大量的能快速便捷处理数据的函数和方法,为时间序列分析提供很好的支持,提供多种数据结构,如Series、Time-Series、DataFrame和Panel。
数据可视化库:
4 Matplotlib
第一个Python可视化库,有许多别的程序库都是建立在其基础上或者直接调用该库,可以很方便地得到数据的大致信息,功能非常强大,但也非常复杂。
5 Seaborn
利用了Matplotlib,用简洁的代码来制作好看的图表。与Matplotlib最大的区别为默认绘图风格和色彩搭配都具有现代美感。
6 ggplot
基于R的一个作图库ggplot2,同时利用了源于《图像语法》(The Grammar of Graphics)中的概念,允许叠加不同的图层来完成一幅图,并不适用于制作非常个性化的图像,为 *** 作的简洁度而牺牲了图像的复杂度。
7 Bokeh
跟ggplot一样,Bokeh也基于《图形语法》的概念。与ggplot不同之处为它完全基于Python而不是从R处引用。长处在于能用于制作可交互、可直接用于网络的图表。图表可以输出为JSON对象、HTML文档或者可交互的网络应用。
8 Plotly
可以通过Python notebook使用,与Bokeh一样致力于交互图表的制作,但提供在别的库中几乎没有的几种图表类型,如等值线图、树形图和三维图表。
9 pygal
与Bokeh和Plotly一样,提供可直接嵌入网络浏览器的可交互图像。与其他两者的主要区别在于可将图表输出为SVG格式,所有的图表都被封装成方法,且默认的风格也很漂亮,用几行代码就可以很容易地制作出漂亮的图表。
10 geoplotlib
用于制作地图和地理相关数据的工具箱。可用来制作多种地图,比如等值区域图、热度图、点密度图。必须安装Pyglet(一个面向对象编程接口)方可使用。
11 missingno
用图像的方式快速评估数据缺失的情况,可根据数据的完整度对数据进行排序或过滤,或者根据热度图或树状图对数据进行修正。
web开发库:
12 Django
一个高级的Python Web框架,支持快速开发,提供从模板引擎到ORM所需的一切东西,使用该库构建App时,必须遵循Django的方式。
13 Socket
一个套接字通讯底层库,用于在服务器和客户端间建立TCP或UDP连接,通过连接发送请求与响应。
14 Flask
一个基于Werkzeug、Jinja 2的Python轻量级框架(microframework),默认配备Jinja模板引擎,也包含其他模板引擎或ORM供选择,适合用来编写API服务(RESTful rervices)。
15 Twisted
一个使用Python实现的基于事件驱动的网络引擎框架,建立在deferred object之上,一个通过异步架构实现的高性能的引擎,不适用于编写常规的Web Apps,更适用于底层网络。
数据库管理:
16 MySQL-python
又称MySQLdb,是Python连接MySQL最流行的一个驱动,很多框架也基于此库进行开发。只支持Python 2x,且安装时有许多前置条件。由于该库基于C语言开发,在Windows平台上的安装非常不友好,经常出现失败的情况,现在基本不推荐使用,取代品为衍生版本。
17 mysqlclient
完全兼容MySQLdb,同时支持Python 3x,是Django ORM的依赖工具,可使用原生SQL来 *** 作数据库,安装方式与MySQLdb一致。
18 PyMySQL
纯Python实现的驱动,速度比MySQLdb慢,最大的特点为安装方式简洁,同时也兼容MySQL-python。
19 SQLAlchemy
一种既支持原生SQL,又支持ORM的工具。ORM是Python对象与数据库关系表的一种映射关系,可有效提高写代码的速度,同时兼容多种数据库系统,如SQLite、MySQL、PostgreSQL,代价为性能上的一些损失。
自动化运维:
20 jumpsever跳板机
一种由Python编写的开源跳板机(堡垒机)系统,实现了跳板机的基本功能,包含认证、授权和审计,集成了Ansible、批量命令等。
支持WebTerminal Bootstrap编写,界面美观,自动收集硬件信息,支持录像回放、命令搜索、实时监控、批量上传下载等功能,基于SSH协议进行管理,客户端无须安装agent。主要用于解决可视化安全管理,因完全开源,容易再次开发。
21 Magedu分布式监控系统
一种用Python开发的自动化监控系统,可监控常用系统服务、应用、网络设备,可在一台主机上监控多个不同服务,不同服务的监控间隔可以不同,同一个服务在不同主机上的监控间隔、报警阈值可以不同,并提供数据可视化界面。
22 Magedu的CMDB
一种用Python开发的硬件管理系统,包含采集硬件数据、API、页面管理3部分功能,主要用于自动化管理笔记本、路由器等常见设备的日常使用。由服务器的客户端采集硬件数据,将硬件信息发送至API,API负责将获取的数据保存至数据库中,后台管理程序负责对服务器信息进行配置和展示。
23 任务调度系统
一种由Python开发的任务调度系统,主要用于自动化地将一个服务进程分布到其他多个机器的多个进程中,一个服务进程可作为调度者依靠网络通信完成这一工作。
24 Python运维流程系统
一种使用Python语言编写的调度和监控工作流的平台,内部用于创建、监控和调整数据管道。允许工作流开发人员轻松创建、维护和周期性地调度运行工作流,包括了如数据存储、增长分析、Email发送、A/B测试等诸多跨多部门的用例。
GUI编程:
25 Tkinter
一个Python的标准GUI库,可以快速地创建GUI应用程序,可以在大多数的UNIX平台下使用,同样可以应用在Windows和Macintosh系统中,Tkinter 80的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
26 wxPython
一款开源软件跨平台GUI库wxWidgets的Python封装和Python模块,是Python语言的一套优秀的GUI图形库,允许程序员很方便地创建完整的、功能健全的GUI用户界面。
27 PyQt
一个创建GUI应用程序的工具库,是Python编程语言和Qt的成功融合,可以运行在所有主要 *** 作系统上,包括UNIX、Windows和Mac。PyQt采用双许可证,开发人员可以选择GPL和商业许可,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。
28 PySide
一个跨平台的应用程式框架Qt的Python绑定版本,提供与PyQt类似的功能,并相容API,但与PyQt不同处为其使用LGPL授权。
更多Python知识请关注Python自学网。
python3下用flask-sqlalchemy对mysql数据库 *** 作案例:
from flask import Flask
from flaskextsqlalchemy import SQLAlchemy
app = Flask(__name__)
appconfig['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
db = SQLAlchemy(app)
class User(dbModel):
id = dbColumn(dbInteger, primary_key=True)
username = dbColumn(dbString(80), unique=True)
email = dbColumn(dbString(120), unique=True)
def __init__(self, username, email):
selfusername = username
selfemail = email
def __repr__(self):
return '<User %r>' % selfusername
admin = User('admin', 'admin@examplecom')
dbcreate_all() # In case user table doesn't exists already Else remove it
dbsessionadd(admin)
dbsessioncommit() # This is needed to write the changes to database
Userqueryall()
Userqueryfilter_by(username='admin')first()
使用type动态创建类,并动态绑定metaData这种方式来动态创建类:
from sqlalchemyorm import mapperfrom sqlalchemy import Table,MetaData
metadata = MetaData()def getNewModel(name):
t = type(name,(object,),dict())
user = Table(name,metadata,
Column('id',Integer,primary_key = True),
)
mapper(t,user) return t
t1 = getNewModel("t1")
t2 = getNewModel("t2")
1 Django
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。Django与其他框架比较,它有个比较独特的特性,支持orm,将数据库的 *** 作封装成为python,对于需要适用多种数据库的应用来说是个比较好的特性。不过这种特性,已经有其他库完成了,sqlalchemy
2Flask
Flask是一个使用Python编写的轻量级Web应用框架。其WSGI工具箱采用Werkzeug,模板引擎则使用Jinja2。Flask使用BSD授权。
Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask框架学会以后,可以考虑学习插件的使用。例如使用WTForm+Flask-WTForm来验证表单数据,用SQLAlchemy+Flask-SQLAlchemy来对你的数据库进行控制。
3Tornado
Tornado是一种Web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架。不过现在与众多的框架比较,Tornado已经被抛在了后面,Django已经超过了它,更不说其他框架了,只能说Tornado使用纯python开发的性能还是不能与其他框架借助于cython开发的性能相比。
4webpy
webpy是一个Python的web框架,它简单而且功能强大。webpy是公开的,无论用于什么用途都是没有限制的。而且相当的小巧,应当归属于轻量级的web框架。但这并不影响webpy的强大,而且使用起来很简单、很直接。在实际应用上,webpy更多的是学术上的价值,因为你可以看到更多web应用的底层,这在当今“抽象得很好”的web框架上是学不到的:)
5Aio>
高性能异步web框架,既有客户端的也有服务端的,还支持web-socket
6Sanic
与flask类似,并支持异步
7Vibora
旨在成为最快的pythonweb框架。vibora的高性能依赖于cython实现的uvloop异步框架及cython实现的>
8Bottle
Bottle是一个简单高效的遵循WSGI的微型pythonWeb框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。
9Falcon
Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。
10weppy
性能优于flask的一个全栈web框架
以上就是关于python常用到哪些库全部的内容,包括:python常用到哪些库、SQLAlchemy建完数据提交MySQL没反应、SQLAlchemy怎么在Oracle中自动建立映射等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)