renom_cn.api.db

Copyright 2019, Grid.

This source code is licensed under the ReNom Subscription Agreement, version 1.0. ReNom Subscription Agreement Ver. 1.0 ( https://www.renom.jp/info/license/index.html )

class renom_cn.api.db. Connector

ベースクラス: object

Abstract class of db connector with sqlalchemy.

engine
Returns:
engine : sqlalchemy.engine.Engine
return attribute of sqlalchemy.engine.Engine instance.
get_all ( obj )

Get all object.

Args:
obj : sqlalchemy.ext.declarative.api.DeclarativeMeta class object.
Returns:
obj_list : list of sqlalchemy.ext.declarative.api.DeclarativeMeta instance.
insert ( obj )

Insert object.

Args:
obj : instance of sqlalchemy.ext.declarative.api.DeclarativeMeta class object.
Returns:
obj : instance of inserted sqlalchemy.ext.declarative.api.DeclarativeMeta class object.
session
Returns:
session : sqlalchemy.orm.session.Session
return attribute of sqlalchemy.orm.session.Session instance.
update ( obj )

Update object. Same with insert function.

Args:
obj : instance of sqlalchemy.ext.declarative.api.DeclarativeMeta class object.
Returns:
obj : instance of updated sqlalchemy.ext.declarative.api.DeclarativeMeta class object.
class renom_cn.api.db. SQLiteConnector ( host='' , database=':memory:' )

ベースクラス: renom_cn.api.db.Connector

Connector for SQLite.

Examples:
>>> from sqlalchemy import Column, Integer, TEXT
>>> from sqlalchemy.ext.declarative import declarative_base
>>> from renom_cn.api.db import SQLiteConnector
>>> Base = declarative_base()
>>> class Test(Base):
...     __tablename__ = 'test'
...     id = Column(Integer, primary_key=True, autoincrement=True)
...     name = Column(TEXT)
...
>>> conn = SQLiteConnector()
>>> Base.metadata.create_all(bind=conn.engine)
>>> data = Test(name="test1")
>>> conn.insert(data)
<__main__.Test object at 0x104bbbf28>
>>> conn.get_all(Test)  # get all Test table object.
[<__main__.Test object at 0x104bbbf28>]
>>> conn.session.query(Test).one()  # get one with session attribute.
<__main__.Test object at 0x104bbbf28>
>>> conn.session.query(Test).filter(Test.name=="test1").one()  # select with filter.
<__main__.Test object at 0x104bbbf28>
class renom_cn.api.db. MySQLConnector ( host , port , user , password , database )

ベースクラス: renom_cn.api.db.Connector

Connector for MySQL.

Examples:
>>> from sqlalchemy import Column, Integer, TEXT
>>> from sqlalchemy.ext.declarative import declarative_base
>>> from renom_cn.api.db import SQLiteConnector
>>> Base = declarative_base()
>>> class Test(Base):
...     __tablename__ = 'test'
...     id = Column(Integer, primary_key=True, autoincrement=True)
...     name = Column(TEXT)
...
>>> conn = MySQLConnector(host="localhost", port="3306",
...                       user="testuser", password="testpassword", database="testdb")
>>> Base.metadata.create_all(bind=conn.engine)
>>> data = Test(name="test1")
>>> conn.insert(data)
<__main__.Test object at 0x108a96550>
>>> conn.get_all(Test)  # get all Test table object.
[<__main__.Test object at 0x108a96550>]
>>> conn.session.query(Test).one()  # get one with session attribute.
<__main__.Test object at 0x108a96550>
>>> conn.session.query(Test).filter(Test.name=="test1").one()  # select with filter.
<__main__.Test object at 0x108a96550>
class renom_cn.api.db. PostgreSQLConnector ( host , port , user , password , database )

ベースクラス: renom_cn.api.db.Connector

Connector for PostgreSQL.

Examples:
>>> from sqlalchemy import Column, Integer, TEXT
>>> from sqlalchemy.ext.declarative import declarative_base
>>> from renom_cn.api.db import PostgreSQLConnector
>>> Base = declarative_base()
>>> class Test(Base):
...     __tablename__ = 'test'
...     id = Column(Integer, primary_key=True, autoincrement=True)
...     name = Column(TEXT)
...
>>> conn = PostgreSQLConnector(host="localhost", port="5432",
...                            user="testuser", password="testpassword", database="testdb")
>>> Base.metadata.create_all(bind=conn.engine)
>>> data = Test(name="test1")
>>> conn.insert(data)
<__main__.Test object at 0x10832e668>
>>> conn.get_all(Test)  # get all Test table object.
[<__main__.Test object at 0x10832e668>]
>>> conn.session.query(Test).one()  # get one with session attribute.
<__main__.Test object at 0x10832e668>
>>> conn.session.query(Test).filter(Test.name=="test1").one()  # select with filter.
<__main__.Test object at 0x10832e668>