ActiveRecord와 비슷한 기능을 원한다면 sqlalchemy과 같은 외부 ORM을 추가해야합니다. 즉 별도의 다운로드 비록
빠른 예를 사용하여 SQLAlchemy의 :
from sqlalchemy import create_engine, Column, String, Integer, MetaData, Table
from sqlalchemy.orm import mapper, create_session
import csv
CSV_FILE = 'foo.csv'
engine = create_engine('sqlite://') # memory-only database
table = None
metadata = MetaData(bind=engine)
with open(CSV_FILE) as f:
# assume first line is header
cf = csv.DictReader(f, delimiter=',')
for row in cf:
if table is None:
# create the table
table = Table('foo', metadata,
Column('id', Integer, primary_key=True),
*(Column(rowname, String()) for rowname in row.keys()))
table.create()
# insert data into the table
table.insert().values(**row).execute()
class CsvTable(object): pass
mapper(CsvTable, table)
session = create_session(bind=engine, autocommit=False, autoflush=True)
지금 당신이 등, 모든 필드에 의해 필터링 데이터베이스를 쿼리
것은이 CSV에 위의 코드를 실행한다고 가정 할 수 있습니다
생성 및 필드 name
, age
, nickname
와 메모리에 테이블을 채 웁니다 name,age,nickname
nosklo,32,nosklo
Afila Tun,32,afilatun
Foo Bar,33,baz
. 자동으로 생성하고 SELECT
쿼리를 실행하고 올바른 행을 반환합니다
for r in session.query(CsvTable).filter(CsvTable.age == '32'):
print r.name, r.age, r.nickname
: 그런 다음 테이블을 조회 할 수 있습니다.
sqlalchemy를 사용하는 또 다른 이점은 나중에 다른 강력한 데이터베이스를 사용하기로 결정한 경우 코드를 변경하지 않고 일시적으로 수행 할 수 있다는 것입니다.
답변을 즐겨 찾기로 표시하려면 (실제로는 * 답글 :) 원하는 답변의 투표 수 바로 아래에있는 체크 표시 (✓)를 클릭하십시오. 예를 들어, 당분간 nosklo의 대답은 13 표입니다. "투표 다운"삼각형 아래에 희미한 체크 마크가 있습니다. 그것을 클릭하십시오. – tzot