服务器安装Datasette库,可以在网页操作SQLite

9/15/2020 python

本文主要教你安装Python库,然后在页面操作SQLite数据库。

# 前言

周末制作了一个视频:一个Python库可视化查看SQLite3数据库,但只是在我自己笔记本安装,想着还是写一个服务器教程,介绍文字版的安装过程,分享给需要的伙伴们。

# Datasette

Datasette是一个Python 工具,可以为SQLite数据库生成JSON API。因为SQLite不能并发写入,所以API是只读的,但是读性能非常好。

# 说明

本文将以CentOS6为例,进行说明如何安装这个Python库。

# 演示安装的操作系统版本

$ cat /etc/redhat-release 
CentOS release 6.5 (Final)
1
2

# 安装SQLite3和编译一个Python3.8版本

此工具原则上Python3.6版本以及高于Python 3.6版本即可,但是实际用我一个编译过的Python3.7.4版本,发现在使用sqlite3打开只读文件模式的时候会生成一个空文件。

于是,我重新编译了一个SQLite3最新版本,和最新的Python-3.8.5版本。

在这里会遇到几个坑:

1.Python3 需要引用SSL,这里跟安装这个工具无关,但是如果你后续要用SSL,你最好一次性解决完这个问题,否则到时候需要重新编译一次。有兴趣可以参考之前我的文章:Python入门-编译安装Python3教程

2.此次编译由于在新环境,编译Python3 的时候找不到SQLite3 库,于是我进行了编译,这里说明下如何修改。

$ wget https://www.sqlite.org/2020/sqlite-autoconf-3330000.tar.gz --no-check-certificate
$ tar zxf sqlite-autoconf-3330000.tar.gz
$ ./configure --prefix=/opt/testerzhang/3rd/sqlite
$ make && make install

$ vim ~/.bash_profile
SQLITEHOME=$HOME/3rd/sqlite
export PYTHONHOME=$HOME/3rd/Python-3.8.5
export PYTHONPATH=$PYTHONHOME/lib/python3.8
export PATH=.:$PYTHONHOME/bin:$SQLITEHOME/bin:$PATH
export LD_LIBRARY_PATH=.:$SQLITEHOME/lib:$PYTHONHOME/lib:$LD_LIBRARY_PATH

$ source  ~/.bash_profile
1
2
3
4
5
6
7
8
9
10
11
12
13

接下来编译Python,这里我也用了自己的OpenSSL版本。

在Python源码目录编辑文件,加入sqlite的路径:'/opt/testerzhang/3rd/sqlite/include',
$ vi setup.py    sqlite_inc_paths = [ '/usr/include',
                     '/opt/testerzhang/3rd/sqlite/include',
                     '/usr/include/sqlite',
                     '/usr/include/sqlite3',
                     '/usr/local/include',
                     '/usr/local/include/sqlite',
                     '/usr/local/include/sqlite3',
                   ]$ ./configure --prefix=/opt/testerzhang/3rd/Python-3.8.5 --with-openssl=/opt/testerzhang/3rd/openssl
$ make && make install

1
2
3
4
5
6
7
8
9
10
11

这样我们就可以正常的用我们自己的Python编译包进行安装库。

3.此次编译由于在新环境,编译Python3 的时候找不到SQLite3 库,于是我进行了编译,这里说明下如何修改。

# 安装Datasette库

$ pip3 install datasette
1

是不是很简单。

# 如何运行

$ datasette serve fund.db  -h 0.0.0.0
1

其中:

  • fund.db 是我的一个sqlite3数据库。
  • -h 后面带IP,否则默认启动是127.0.0.1,我们笔记本不能正常在网页访问。

# 效果图

这里的效果图我就简单贴两张,更多的内容可以查看视频。

主页

表数据

# 更多的用法

例如直接命令行导出json串,其他更多细节可以参考:https://github.com/simonw/datasette。

# 结束语

如果在服务器安装过程中有任何的问题,可以在评论区留言。


欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

Last Updated: 1/1/2022, 11:13:04 PM