Python使用SQLAlchemy访问MemFireDB

之前看到一个帖子说的挺好,项目开发尽量不要自己造轮子,能用开源项目或者SAAS服务尽量用,很多事情都是跟时间赛跑。

如果大家有个人项目或者公司内部测试项目,MemFire Cloud,推荐大家尝试一下,挺方便的,不用自己搭建数据库,在家或者公司随时可以访问。

SQLAlchemy是Python中最常用的访问数据库的ORM库,MemFireDB兼容Postgres接口,所以可以直接把MemFireDB当Postgres使用

memfiredb.com 上创建数据库时,可以选择创建密码或者证书两种认证模式,在公网上部署的数据库,如果存储的是比较重要的数据,建议使用证书认证模式,该模式安全系数要高很多,撞库、彩虹表、暴力破解等传统的密码破解方式对证书认证是无能为力的。如果只是简单测试,可以使用密码认证方式,这种方式配置简单些。

言归正传,下面是SQLAlchemy使用证书连接MemFireDB的例子,创建完数据库后,把下载的证书解压到代码同级的目录就可以了,记得将host、port、dbname、dbuser设置为对应的值:

1# -*- coding: utf-8 -*- 2 3import sys 4 5from sqlalchemy.ext.declarative import declarative_base 6from sqlalchemy import Column, Integer 7from sqlalchemy import create_engine 8from sqlalchemy.orm import sessionmaker 9import sqlalchemy.engine.url as url 10 11 12Base = declarative_base() 13 14 15class Counter(Base): 16 __tablename__ = 'counters' 17 18 id = Column(Integer, primary_key=True) 19 counter = Column(Integer) 20 21 22engine = None 23 24 25def init_db_engine(host, port, dbname, user, ssl_ca, ssl_cert, ssl_key): 26 global engine 27 uri = url.URL( 28 drivername="postgresql", 29 host=host, 30 port=port, 31 username=user, 32 database=dbname, 33 ) 34 35 ssl_args = { 36 "sslmode": "verify-ca", 37 "sslrootcert": ssl_ca, 38 "sslcert": ssl_cert, 39 "sslkey": ssl_key 40 } 41 print ssl_args 42 engine = create_engine(uri, connect_args=ssl_args, encoding='utf-8', echo=False, 43 pool_size=100, pool_recycle=3600, pool_pre_ping=True) 44 45 46def get_session(): 47 global engine 48 SessionCls = sessionmaker(bind=engine) 49 return SessionCls() 50 51 52def main(): 53 host = sys.argv[1] 54 port = int(sys.argv[2]) 55 dbname = sys.argv[3] 56 dbuser = sys.argv[4] 57 58 init_db_engine(host, port, dbname, dbuser, './root.crt', './memfiredb.crt', './memfiredb.key') 59 Base.metadata.create_all(engine) 60 61 session = get_session() 62 session.execute('delete from counters') 63 cnt = Counter(counter=1) 64 session.add(cnt) 65 session.commit() 66 session.close() 67 68 69if __name__ == '__main__': 70 main()

平台入口:https://memfiredb.com 文档地址:https://docs.memfiredb.com

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Golang使用gopg访问MemFireDB数据库

本篇介绍如何使用Golang访问MemFireDB数据库。如果大家有个人项目或者公司内部测试项目,推荐大家尝试MemFireCloud,不用自己搭建数据库,在家或者公司随时可以访问。gopg是Golang中最常用的访问数据库的ORM库,MemFireDB兼容Postgres接口,所以可以直接把MemFireDB当Postgres使用。在memfiredb