文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库

2023-07-05 20:17

关注

这篇“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”文章吧。

测试环境:

1,确认安装python3

确认已经安装python3和python3-devel

[root@localhost test]# python3 -VPython 3.6.8

如果没有安装,建议使用yum install python3来安装。
升级pip的版本

[root@localhost test]# python3 -m pip install --upgrade --force-reinstall pipWARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead.Collecting pip  Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB)    100% |████████████████████████████████| 1.7MB 235kB/sInstalling collected packages: pipSuccessfully installed pip-21.3.1[root@localhost test]# pip3 listWARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.Package    Version---------- -------pip        21.3.1setuptools 39.2.0

2,安装GBase 8s数据库连接工具(CSDK)


解压到指定目录/opt下,生成/opt/gbase8s-odbc-driver目录

[root@localhost test]# ll总用量 35188-rw-r--r--. 1 root root 36029237 3月  11 20:52 GBase8s_3.0.0_1-Linux64-ODBC-Driver.tar.gz[root@localhost test]# tar -zxf GBase8s_3.0.0_1-Linux64-ODBC-Driver.tar.gz -C /opt/[root@localhost test]# cd /opt/[root@localhost opt]# ll总用量 4drwxr-xr-x. 20 gbasedbt gbasedbt 4096 3月  10 15:14 gbasedrwxrwxr-x.  9     1001     1003   88 12月 13 2020 gbase8s-odbc-driverdrwxr-xr-x.  2 root     root        6 10月 31 2018 rh

创建必须的环境变量,并使环境生效

export GBASEDBTDIR=/opt/gbase8s-odbc-driverexport CSDK_HOME=/opt/gbase8s-odbc-driverexport PATH=$GBASEDBTDIR/bin:$PATHexport LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH

创建sqlhosts配置文件

[root@localhost test]# vi /opt/gbase8s-odbc-driver/etc/sqlhosts[root@localhost test]# more /opt/gbase8s-odbc-driver/etc/sqlhostsgbase01 onsoctcp a02.gbasedbt.com 9088

3,安装sqlalchemy-gbasedbt

3.1, 在线安装sqlalchemy-gbasedbt

确认python3、python3-devel和gcc均已经安装,CSDK也已经安装以及环境变量已经配置的情况下,可直连网络的情况下,可使用pip3 install sqlalchemy-gbasedbt直接安装

[root@localhost test]# pip3 install sqlalchemy-gbasedbtCollecting sqlalchemy-gbasedbt  Using cached sqlalchemy_gbasedbt-0.2.4-py3-none-any.whl (10 kB)Collecting DbtPy  Using cached DbtPy-3.0.5.4.tar.gz (162 kB)  Preparing metadata (setup.py) ... doneRequirement already satisfied: sqlalchemy in /usr/local/lib64/python3.6/site-packages (from sqlalchemy-gbasedbt) (1.4.46)Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib64/python3.6/site-packages (from sqlalchemy->sqlalchemy-gbasedbt) (2.0.2)Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.6/site-packages (from sqlalchemy->sqlalchemy-gbasedbt) (4.8.3)Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.6/site-packages (from importlib-metadata->sqlalchemy->sqlalchemy-gbasedbt) (4.1.1)Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/site-packages (from importlib-metadata->sqlalchemy->sqlalchemy-gbasedbt) (3.6.0)Using legacy 'setup.py install' for DbtPy, since package 'wheel' is not installed.Installing collected packages: DbtPy, sqlalchemy-gbasedbt    Running setup.py install for DbtPy ... doneSuccessfully installed DbtPy-3.0.5.4 sqlalchemy-gbasedbt-0.2.4

将同时安装依赖包:sqlalchemy、greenlet、importlib-metadata、typing-extensions、zipp和DbtPy,安装后的pip3列表如下:

[root@localhost test]# pip3 listPackage             Version------------------- -------DbtPy               3.0.5.4greenlet            2.0.2importlib-metadata  4.8.3pip                 21.3.1setuptools          39.2.0SQLAlchemy          1.4.46sqlalchemy-gbasedbt 0.2.4typing_extensions   4.1.1zipp                3.6.0

4,编写测试Demo,执行测试

测试demo文件

#!/usr/bin/env python3# Filename: testSqlalchemy_gbasedbtfrom sqlalchemy import MetaData, Table, Column, String, create_enginefrom sqlalchemy.dialects import registryfrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseregistry.register("gbasedbt", "sqlalchemy_gbasedbt.dbtdb", "GBasedbtDialect")# 创建对象的基类:Base = declarative_base()# 定义User对象:class User(Base):    # 表的名字:    __tablename__ = 'user'    # 表的结构:    id = Column(String(20), primary_key=True)    name = Column(String(20))# 初始化数据库连接:# ConStr = 'gbasedbt://<username>:<password>@<host name>:<port number>/<databasename>;SERVER=<server name>'ConStr = 'gbasedbt://gbasedbt:GBase123@a02.gbasedbt.com:9088/testdb;SERVER=gbase01;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;DELIMIDENT=y'engine = create_engine(ConStr)# 创建对象Base.metadata.create_all(engine)# 创建DBSession类型:DBSession = sessionmaker(bind=engine)# 创建session对象:session = DBSession()# 创建新User对象:new_user = User(id='2', name='测试用户')# 添加到session:session.add(new_user)# 提交即保存到数据库:session.commit()# 关闭session:session.close()# 创建Session:session = DBSession()# 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:user = session.query(User).filter(User.id=='2').one()# 打印类型和对象的name属性:print('type:', type(user))print('name:', user.name)# 关闭Session:session.close()

测试结果:

[root@localhost test]# ./testSqlalchemy_gbasedbt.py
type: <class '__main__.User'>
name: 测试用户

以上就是关于“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯