将ipython控制台转换为跨数据库sql客户端
ipydb的Python项目详细描述
ipydb是一个IPython插件,用于运行sql查询和查看查询结果。
用法
有些演示视频可以在documentation
$ ipython
In [1] : %load_ext ipydb
In [2] : %automagic on
Automagic is ON, % prefix IS NOT needed for line magics.
In [3] : connecturl mysql://user:pass@localhost/employees
In [4] localhost/employees: tables
departments
dept_emp
dept_manager
employees
salaries
titles
In [5] localhost/employees: fields departments
departments
-----------
dept_name VARCHAR(40)
dept_no CHAR(4)
In [6] localhost/employees: select * from departments order by dept_name
+---------+--------------------+
| dept_no | dept_name |
+---------+--------------------+
| d009 | Customer Service |
| d005 | Development |
| d002 | Finance |
| d003 | Human Resources |
| d001 | Marketing |
| d004 | Production |
| d006 | Quality Management |
| d008 | Research |
| d007 | Sales |
功能
- Tab-completion of table names, fields and joins
- View query results in ascii-table format piped through less
- Single-line or multi-line query editing
- Tab-completion metadata is read in the background and persisted across sessions
- Cross-database support, thanks to SqlAlchemy: supported databases
安装
安装IPYDB:
$ pip install ipydb
您将需要一个python驱动程序作为您选择的数据库。例如:
$ pip install mysql-python
ipydb使用SqlAlchemy与数据库交互。 请参阅Supported Databases页 对于a(大!)支持的DB-API 2.0驱动程序列表以及如何 为特定数据库编写连接url。
启动ipython并加载ipydb插件:
$ ipython In [1]: load_ext ipydb
文档
文档可在以下位置获得:http://ipydb.readthedocs.org
连接到数据库
有两种方法可以使用ipydb连接到数据库。直接通过连接url,使用 connecturlmagic函数,或者使用与connectmagic函数的连接“昵称”。
一。使用connecturl
您可以使用sqlalchemy样式的url连接到数据库,如下所示:
%connecturl drivername://username:password@host/database
一些示例:
In [3] : connecturl mysql://myuser:mypass@localhost/mydatabase
In [4] : connecturl sqlite:///path/to/mydb.sqlite
In [5] : connecturl sqlite:///:memory:
有关详细信息,请参见SqlAlchemy Documentation。
2.使用connect和.db-connections配置文件
为此,需要创建一个名为 .db-connections位于主目录中。 .db-connections是一个“ini”格式的文件, 可由python的configparser模块解析。
下面是~/.db-connections可能是什么样子的示例:
[mydb]type=mysqlusername=rootpassword=xxxxhost=localhostdatabase=employees[myotherdb]type=sqlitedatabase=/path/to/file.sqlite
在~/.db-connections中定义的每个数据库连接都是 然后可通过其[节标题]引用。所以有了 在.db-connections文件上方,以下示例将起作用:
In [6] : connect mydb
In [7] mydb : connect myotherdb