2

Pythonは初心者ですが、面白そうな言語なので、これからも学んでいきたいと思います。

この件に関する情報を探していますが、まともな情報源を見つけることができないようです. Python3.3、Pymysql、SQLAlchemy、(Pyramid)、および MySQL をインストールしました。

pymysql を使用したデータベースへの接続は、この接続文字列を使用して正常に機能します。データベース (gevent) への非同期呼び出しを行いたいため、pymysql を使用します。また、オブジェクト マッピングを実行できるように SQLAlchemy が必要です。

現在、pythonWin 画面で作業して、データベースに接続できるかどうかをテストしています。

import pymysql    
con = pymysql.connect(db='dbeerste', user='admin', passwd='admin', host='localhost', port=3306)    
cur = con.cursor(); 
cur.execute("SELECT * FROM dbeerste.tabel1;")

これら2つを組み合わせると、私にはうまくいかないようです。

import pymysql
import sqlalchemy
engine = sqlalchemy.create_engine("mysql+pymysql://admin:admin@127.0.0.1/dbeerste")
engine.connect()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 1651, in connect
    return self._connection_cls(self, **kwargs)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 59, in __init__
    self.__connection = connection or engine.raw_connection()
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 1709, in raw_connection
    return self.pool.unique_connection()
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\pool.py", line 220, in unique_connection
    return _ConnectionFairy(self).checkout()
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\pool.py", line 425, in __init__
    rec = self._connection_record = pool._do_get()
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\pool.py", line 777, in _do_get
    con = self._create_connection()
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\pool.py", line 225, in _create_connection
    return _ConnectionRecord(self)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\pool.py", line 322, in __init__
    exec_once(self.connection, self)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\event.py", line 381, in exec_once
    self(*args, **kw)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\event.py", line 398, in __call__
    fn(*args, **kw)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\strategies.py", line 168, in first_connect
    dialect.initialize(c)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\dialects\mysql\base.py", line 2052, in initialize
    default.DefaultDialect.initialize(self, connection)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\default.py", line 172, in initialize
    self._get_default_schema_name(connection)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\dialects\mysql\base.py", line 2019, in _get_default_schema_name
    return connection.execute('SELECT DATABASE()').scalar()
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 664, in execute
    params)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 808, in _execute_text
    statement, parameters
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 871, in _execute_context
    context)
  File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\default.py", line 322, in do_execute
    cursor.execute(statement, parameters)
  File "C:\Python33\lib\site-packages\pymysql3-0.4-py3.3.egg\pymysql\cursors.py", line 96, in execute
    #query = query % conn.escape(args)
TypeError: unsupported operand type(s) for %: 'bytes' and 'tuple'

誰でもこの問題で私を助けてくれますか?

ps: 私はこの言語に慣れていないので、回答をお待ちしております。また、これを別の方法で行うための提案があれば、意見を入力してください。Python3.3、非同期呼び出し、MVC の使用だけです。

4

0 に答える 0