조랑말 ORM (및 python3.5, sqlite3)을 사용하여 기본적인 연습을 해보십시오. 나는 더 이상 처리하지 않고 가지고있는 일부 데이터의 선택 쿼리를 인쇄하고 싶습니다. 조랑말 ORM은 .... 전혀 것을 좋아하지 않는 것 sqlite3 blob 필드에 pony orm을 사용할 수 없습니다.
SQLite는 DB를 덤프 여기PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE sums (t text, path BLOB, name BLOB, sum text, primary key (path,name));
INSERT INTO "sums" VALUES('directory','','','');
INSERT INTO "sums" VALUES('file','','sums-backup-f.db','6859b35f9f026317c5df48932f9f2a91');
INSERT INTO "sums" VALUES('file','','md5-tree.py','c7af81d4aad9d00e88db7af950c264c2');
INSERT INTO "sums" VALUES('file','','test.db','a403e9b46e54d6ece851881a895b1953');
INSERT INTO "sums" VALUES('file','','sirius-alexa.db','22a20434cec550a83c675acd849002fa');
INSERT INTO "sums" VALUES('file','','sums-reseau-y.db','1021614f692b5d7bdeef2a45b6b1af5b');
INSERT INTO "sums" VALUES('file','','.md5-tree.py.swp','1c3c195b679e99ef18b3d46044f6e6c5');
INSERT INTO "sums" VALUES('file','','compare-md5.py','cfb4a5b3c7c4e62346aa5e1affef210a');
INSERT INTO "sums" VALUES('file','','charles.local.db','9c50689e8185e5a79fd9077c14636405');
COMMIT;
내가 python3.5 대화 형 쉘에서 실행하려고 코드입니다 :
from pony.orm import *
db = Database()
class File(db.Entity) :
_table_ = 'sums'
t = Required(str)
path = Required(bytes)
name = Required(bytes)
sum = Required(str)
PrimaryKey(path,name)
db.bind('sqlite','/some/edited/path/test.db')
db.generate_mapping()
File.select().show()
가
Traceback (most recent call last):
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 5149, in _fetch
try: result = cache.query_results[query_key]
KeyError: (('f', 0,()), (<pony.orm.ormtypes.SetType object at 0x7fd2d2701708>,), False, None, None, None, False, False, False,())
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 2, in show
File "/usr/lib/python3.5/site-packages/pony/utils/utils.py", line 75, in cut_traceback
raise exc # Set "pony.options.CUT_TRACEBACK = False" to see full traceback
File "/usr/lib/python3.5/site-packages/pony/utils/utils.py", line 60, in cut_traceback
try: return func(*args, **kwargs)
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 5256, in show
query._fetch().show(width)
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 5155, in _fetch
used_attrs=translator.get_used_attrs())
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 3859, in _fetch_objects
real_entity_subclass, pkval, avdict = entity._parse_row_(row, attr_offsets)
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 3889, in _parse_row_
avdict[attr] = attr.parse_value(row, offsets)
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 1922, in parse_value
val = attr.validate(row[offset], None, attr.entity, from_db=True)
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 2218, in validate
val = Attribute.validate(attr, val, obj, entity, from_db)
File "/usr/lib/python3.5/site-packages/pony/orm/core.py", line 1894, in validate
if from_db: return converter.sql2py(val)
File "/usr/lib/python3.5/site-packages/pony/orm/dbapiprovider.py", line 619, in sql2py
if not isinstance(val, buffer): val = buffer(val)
TypeError: string argument without an encoding
오전 내가이 잘못 사용하거나이 버그가 :
는 그리고 이렇게 실패? 나는 버그를 등록하러가는 것을 꺼리지 만,이 orm을 사용하는 것은 처음이므로, 먼저 체크하는 것이 더 좋을 것이라고 생각했습니다 ...
왜 처음에는 그 열에 얼룩을 사용하고 있습니까? –
이 질문이 올 것 같았습니다. 나는 대답하기에 주제가 아니라고 생각합니다.하지만 호기심을 위해서 : OS와 로케일이 다른 여러 컴퓨터의 파일 이름과 경로 ... 수확시 유니 코드 문제가 발생했습니다. 시간을 문자열로 처리하면 나중에 처리 할 수 있도록 데이터를 일부 장소로 이동하는 데 필요합니다. 요점은 : 나는 그것에 붙어있어, 내가 sqlite3에서 변환하거나 조랑말을 사용하지 마십시오 (둘 다 시도, 고마워요),하지만 포니와 함께 운동을 위해서, 나는 방울을 추출 싶었어요. ... – caliloo