使用SQLAlchemy对Firebird数据库进行操作
来这个公司已经一周了,度过了开始的无聊日子准备正式准备做点东西了,这几天接触了一下文件数据库InterBase,尝试在Ubuntu上连接其开源版本Firebird,因为公司使用的是SQLAlchemy,所以例子我也就用Python演示了。
#安装firebird数据库
- sudo apt-get install firebird-super
2,更改firebird中数据库管理员SYSDBA的密码:
- sudo dpkg-reconfigure firebird2.-super
3,使用gsec命令检测安装成功:
- gsec -user sysdba -password masterkey
如果能进入则说明Firebird安装成功
4,使用isql-fb来新建数据库:
- isql-fb
- SQL> CREATE DATABASE '/tmp/db_name.gdb' USER 'sysdba' PASSWORD 'masterkey'
5,安装firebird数据库的图形界面FlameRobin
6,python使用sqlalchemy框架连接数据库:使用中要安装fdb-1.4.1.tar库
- from sqlalchemy.orm import mapper, sessionmaker
- from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
- from sqlalchemy.sql.expression import Cast
- from sqlalchemy.ext.compiler import compiles
- from sqlalchemy.dialects.mysql import \
- BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, \
- DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER, \
- LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR, \
- NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP, \
- TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR
- import sqlalchemy as sa
- #以上是导包
- metadata = MetaData()
- userTable = Table(
- "jonny_user",metadata,
- Column('user_id', Integer, primary_key=True),
- Column('user_name', VARCHAR(50), unique=True, nullable=False),
- Column('password', VARCHAR(40), nullable=True)
- )
- #下面这个数据库是连接MySQL数据库的语句
- #mysql_db = create_engine('mysql://root:xxxxxxxxx@127.0.0.1:3306/jonny')
- #以下这句是连接Firebird数据库的语句,数据库的默认账号是‘sysdba’默认密码是‘masterkey’
- dburl=sa.engine.url.URL('firebird',username='sysdba',password='masterkey',database='/tmp/firstdb3.gdb')
- mysql_db=sa.create_engine(dburl,encoding='gb2312',echo=False)
- metadata.create_all(mysql_db)
- #建立User类
- class User(object):
- pass
- #关联类与表
- mapper(User, userTable)
- #取得session
- Session = sessionmaker()
- Session.configure(bind=mysql_db)
- session = Session()
- #主函数
- def main():
- inputTypef = raw_input("inputType:")
- if inputTypef == 'insert':
- insert()
- elif inputTypef == 'find':
- find()
- elif inputTypef == 'delete':
- delete()
- else:
- print 'Error'
- #查找方法
- def find():
- print 'name'
- name = raw_input("name:")
- for instance in (session.query(User).filter_by(user_name=name).all()):
- print instance.user_name, instance.password
- #删除方法
- def delete():
- print 'name'
- name = raw_input("name:")
- (session.query(User).filter_by(user_name=name).delete())
- session.flush()
- session.commit()
- print 'deleteSucceed'
- #插入方法
- def insert():
- u = User()
- u.user_id = raw_input("id:")
- print 'name'
- u.user_name = raw_input("name:")
- print 'password'
- u.password = raw_input("password:")
- session.add(u)
- session.flush()
- session.commit()
- session.close()
- if __name__ == '__main__':
- main()
用上面的例子来演示一下对于Firebird数据库的一个简单的增删改查功能,先这样记录下来,对于InterBase及Firebird的一些后续了解再总结一下再记录了。
使用SQLAlchemy对Firebird数据库进行操作的更多相关文章
- Firebird数据库相关操作
Firebird常用SQL 一.分页写法小例: 1 select first 10 templateid,code,name from template ; 2 select first 10 ski ...
- python使用sqlalchemy连接mysql数据库
环境:centos7+python2.7.5+sqlalchemy sqlalchemy是python当中比较出名的orm程序.在python中,使用sqlalchemy连接mysql数据库进行操作非 ...
- sqlalchemy数据库分层操作
在学习sqlalchemy操作中,最常见的就是如下的示例,一个文件基本上包含了数据库的增删改查.sqlalchemy的具体操作我就不再详细说明了.流程大概是: 定义表 创建数据库引擎 创建表 插入数据 ...
- Python3:sqlalchemy对sybase数据库操作,非sql语句
Python3:sqlalchemy对sybase数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- c ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- Flask学习笔记:数据库ORM操作MySQL+pymysql/mysql-python+SQLAlchemy/Flask-SQLAlchemy
Python中使用sqlalchemy插件可以实现ORM(Object Relationship Mapping,模型关系映射)框架,而Flask中的flask-sqlalchemy其实就是在sqla ...
- Flask对数据库的操作-----
首先得做好做基本的框架 # -*- encoding: utf-8 -*- from flask import Flask,render_template #导入第三方连接库sql点金术 from f ...
- python使用sqlalchemy连接pymysql数据库
python使用sqlalchemy连接mysql数据库 字数833 阅读461 评论0 喜欢1 sqlalchemy是python当中比较出名的orm程序. 什么是orm? orm英文全称objec ...
- mysql数据库----python操作mysql ------pymysql和SQLAchemy
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...
随机推荐
- Java代码实现excel数据导入到Oracle
1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误)2.代码: Java代码 import java.io.File; import java.io.Fi ...
- wp8 入门到精通 生命周期
- 如何实现Outlook 2010 下载邮件后自动删除服务器上的邮件
outlook2010---文件---信息---账户设置---选中要设置的帐号---双击点选要设置的邮箱---其他设置---高级---在服务器上保留邮件的副本---14天后删除服务器上的邮件副本,修改 ...
- Shell脚本获取C语言可执行程序返回值
#!/bin/sh #./test是c程序,该程序 返回0 ./test OP_MODE=$? echo $OP_MODE # $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误.
- 配置ogg异构oracle-mysql(1)基础环境配置
一.环境描述: 192.168.0.164 ( Oracle ) —> 192.168.0.165 (Mysql ) 版本: 操作系统:redhat5.8 Oracle: 11.2.0.3 M ...
- Sublime Text3 配置Node.js运行命令
在Sublime Text中可以很容易配置新的编译运行命令,下面的截图是汉化版的中文菜单,英文菜单请直接对照. 首先需要在本地安装Node,默认的Node会加入到系统的环境变量,这样执行Node命 ...
- python web编程-概念预热篇
互联网正在引发一场革命??不喜欢看概念的跳过,注意这里仅仅是一些从python核心编程一书的摘抄 这正是最激动人心的一部分了,web编程 Web 客户端和服务器端交互使用的“语言”,Web 交互的标准 ...
- free store VS heap(自由存储区VS堆)
1. free store VS heap free store (自由存储区)和 heap (堆),在C/C++中经常会遇到.他们是否有区别呢? 偶最早发现这两个概念性问题是在<Excepti ...
- PHP学习之常量
1.常量是一个简单值的标识符,该值在脚本中不能改变: 2.一个常量由英文字母,下划线,和数字组成,但数字不能作为首字母出现:(常量名中不需要加$修饰符) 3.常量在整个脚本中都可以使用: 4.设置PH ...
- 2016.8.21 JavaScript 入门
1.JavaScript的数据类型: ①undefined ②null ③boolean ④string ⑤symbol ⑥number, object 2.在JavaScript中所有的变量和 ...