Symfoware

Symfowareについての考察blog

SQLAlchemyの使い方4 Unicode文字列の使用

SQLAlchemyの使い方を勉強してます。

前回に引き続き、チュートリアルに沿って進めてみます。
http://docs.sqlalchemy.org/en/latest/orm/tutorial.html




Unicodeオブジェクトの使用



Unicodeオブジェクトの使用を明示するには、カラムのデータ型を指定するときの
Stringの引数に「convert_unicode=True」を指定するか、


  1. import sqlalchemy
  2. import sqlalchemy.orm
  3. import sqlalchemy.ext.declarative
  4. Base = sqlalchemy.ext.declarative.declarative_base()
  5. class Student(Base):
  6.     __tablename__ = 'students'
  7.     id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
  8.     name = sqlalchemy.Column(sqlalchemy.String(20, convert_unicode=True))
  9.     kana = sqlalchemy.Column(sqlalchemy.String(40, convert_unicode=True))
  10. url = 'postgresql://pgadmin:password@192.168.1.101:5432/sample'
  11. engine = sqlalchemy.create_engine(url, echo=False)
  12. # セッションを作成
  13. Session = sqlalchemy.orm.sessionmaker(bind=engine)
  14. session = Session()
  15. student = Student(name=u'小山 柚子', kana=u'コヤマ ユズ')
  16. session.add(student)
  17. session.commit()







データ型をStringではなく、Unicodeで指定すれば良いようです。


  1. import sqlalchemy
  2. import sqlalchemy.orm
  3. import sqlalchemy.ext.declarative
  4. Base = sqlalchemy.ext.declarative.declarative_base()
  5. class Student(Base):
  6.     __tablename__ = 'students'
  7.     id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
  8.     name = sqlalchemy.Column(sqlalchemy.Unicode(20))
  9.     kana = sqlalchemy.Column(sqlalchemy.Unicode(40))
  10. url = 'postgresql://pgadmin:password@192.168.1.101:5432/sample'
  11. engine = sqlalchemy.create_engine(url, echo=False)
  12. # セッションを作成
  13. Session = sqlalchemy.orm.sessionmaker(bind=engine)
  14. session = Session()
  15. student = Student(name=u'河嶋 桃', kana=u'カワシマ モモ')
  16. session.add(student)
  17. session.commit()







【参考URL】

http://docs.sqlalchemy.org/en/latest/core/types.html
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/03/30(日) 22:14:46|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
次のページ