在flask应用程序中连接到现有mysql数据库时遇到问题

2024-04-26 19:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

engine = create_engine(engine_URL)
  File "build/bdist.macosx-10.12-intel/egg/sqlalchemy/engine/__init__.py", line 387, in create_engine
  File "build/bdist.macosx-10.12-intel/egg/sqlalchemy/engine/strategies.py", line 56, in create
  File "build/bdist.macosx-10.12-intel/egg/sqlalchemy/engine/url.py", line 139, in _get_entrypoint
  File "build/bdist.macosx-10.12-intel/egg/sqlalchemy/util/langhelpers.py", line 195, in load
  File "build/bdist.macosx-10.12-intel/egg/sqlalchemy/dialects/__init__.py", line 30, in _auto_fn
ValueError: too many values to unpack

我的代码

import os
import sys
from sqlalchemy import Column, ForeignKey, Integer, String, REAL, DATE, Boolean
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy.engine.url import URL
from sqlalchemy import create_engine

engine_URL = URL('mysql://root:password@0.0.0.0:5000/dbase.sql')
engine = create_engine(engine_URL)
Base = declarative_base()
Base.metadata.reflect(engine)

class User(Base):
    __table__ = Base.metadata.tables['user']

if __name__ == '__main__':
    from sqlalchemy.orm import scoped_session, sessionmaker, Query
    db_session = scoped_session(sessionmaker(bind=engine))
    for item in db_session.query(User.name):
        print item

Tags: infrompyimportbuildurlsqlalchemyegg
1条回答
网友
1楼 · 发布于 2024-04-26 19:12:50

您正在将连接URL字符串作为drivername传递给^{}。结果URL为

In [3]: engine_URL = URL('mysql://root:password@0.0.0.0:5000/dbase.sql')

In [4]: engine_URL
Out[4]: mysql://root:password@0.0.0.0:5000/dbase.sql://

如果要使用URL的实例,并从连接字符串创建它,请使用^{}

In [8]: engine_URL = make_url('mysql://root:password@0.0.0.0:5000/dbase.sql')

In [9]: engine_URL
Out[9]: mysql://root:***@0.0.0.0:5000/dbase.sql

也可以将连接URL字符串原样传递给^{}。你知道吗

相关问题 更多 >