python LevelDB&与Flask结合的基础开发

本文介绍了Python环境下LevelDB的基础开发和如何结合Flask构建API服务。重点讨论了LevelDB的特性,如单进程服务、不支持SQL等,并在安装与基础开发后,展示了如何解决Flask在debug模式下因多进程引发的错误,提供了API的调试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python LevelDB基础开发&与Flask结合

1.前言

  1. 本文主要介绍python下leveldb的基础开发以及leveldb结合Flask的api服务简单开发
  2. 本文不会过多赘述leveldb和Flask的基础理论,仅简要阐述与调试及开发相关的知识点.因此,如对leveldb或Flask相关细节存疑请移步百度google
  3. 一切请以官网为准,并注意版本对应
  4. 如有侵权,请联系本人删除,thanks!
  5. 欢迎评论/指正,没有最好的思路只有更好的思路

2.LevelDB基础开发

2.1LevelDB简要介绍

LevelDB百度百科: https://baike.baidu.com/item/LevelDB/6416354?fr=aladdin

在这里我提及的几点有关leveldb的特点,都会对之后的操作有影响

  • LevelDB是单进程服务!随机读全命中的情况下性能很高
  • 是一个C的库,所以:
    • NOSQL,不支持SQL语句,不支持索引
    • 没有进行网络服务封装,不像mysql可以mysql ip:port -u -p登录
  • python提供LevelDB调用库:plyvel

2.2环境安装

代码: https://github.com/1tjackp0t/LevelDB_demo

环境
  • centos 8
  • python 3.6
安装步骤
# 安装leveldb前需要cmake环境
# ali的yum库中cmake版本只到2.8,所以得手动安装了
# 先卸载旧的cmake
$ yum remove cmake
# 下载安装新版cmake
$ wget https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0.tar.gz
$ tar -zxvf cmake-3.18.0.tar.gz 
$ cd CMake-3.18.0
$  ./bootstrap
$ gamke
$ gmake install
# 完成上面所有步骤需要等上一会
$ cmake --version
# 安装leveldb
$ cd /opt/leveldb/leveldb-1.22
$ mkdir -p build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
# 安装完成后,复制库文件到系统调用中
$ cp build/libleveldb.a /usr/local/lib/
$ cp -r include/leveldb/ /usr/local/include/

# 进入工程目录,pip升级一下然后安装plyvel
$ pip install --upgrade pip
$ pip install plyvel
# 在工程目录下创建db文件夹(文件夹位置及命名自定义)以存放数据库相关文件
$ mkdir db

2.3基础开发

# 基本的增删改查实现
# 因为不像mysql做过封装,所以如果要实现更复杂的功能就需要自己实现了

# coding=UTF-8
import plyvel


class DbClient:

    # 初始化&打开数据库
    def __init__(self, location):
        self._db = plyvel.DB(location, create_if_missing=True)
        print("open db's location:" + location)

    # 插入数据&修改
    # leveldb 存取的是二进制数据,所以参数得先确保转换成字符串类型,然后再转换成二进制数据
    # 若插入先相同key值则变为修改!
    def put(self, key, value):
        self._db.put(str(key).encode(), str(value).encode())
        print("inpu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值