5

我正在尝试使用flask和flask-sqlalchemy创建一个Web应用程序,我有以下代码

    from flask.ext.sqlalchemy import  SQLAlchemy
    from flask import Flask

    app= Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI']=            'mysql+mysqldb://root:presario@127.0.0.1/testdb'
    db = SQLAlchemy(app)

当我从命令行运行 db.create_all() 时,出现未知数据库“testdb”错误我正在使用 ubuntu,但上面的代码在我的 Windows 机器上运行。

我尝试添加端口号,删除 python 连接器,但没有任何效果。下面是堆栈跟踪

 File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
     return Connection(*args, **kwargs)
 File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
     super(Connection, self).__init__(*args, **kwargs2)
 sqlalchemy.exc.OperationalError: (OperationalError) (1049, "Unknown database 'testdb'") None None
4

2 回答 2

15

我建议数据库“testdb”不存在。

SQLAlchemy 实际上不会为您创建数据库。您必须连接到现有数据库。然后它将创建所有表。

于 2013-09-04T08:17:37.723 回答
5

您可以像这样创建数据库:

url = 'mysql://%s:%s@%s' % (USER, PASSWORD, HOST)
engine = sqlalchemy.create_engine(url)  # connect to server

create_str = "CREATE DATABASE IF NOT EXISTS %s ;" % (DATABASE)
engine.execute(create_str)
engine.execute("USE location;")
db.create_all()
db.session.commit()
于 2016-12-03T07:47:27.260 回答