Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 未设置SQLALCHEMY\u数据库\u URI_Python 3.x_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python 3.x 未设置SQLALCHEMY\u数据库\u URI

Python 3.x 未设置SQLALCHEMY\u数据库\u URI,python-3.x,flask,sqlalchemy,flask-sqlalchemy,Python 3.x,Flask,Sqlalchemy,Flask Sqlalchemy,我尝试使用Flask和SQLAlchemy使用CURD操作,但在连接到数据库时出现错误 这是错误日志 /usr/local/lib/python3.4/dist-packages/flask_sqlalchemy/__init__.py:819: UserWarning: SQLALCHEMY_DATABASE_URI not set. Defaulting to "sqlite:///:memory:". 'SQLALCHEMY_DATABASE_URI not set. Defaulti

我尝试使用
Flask
SQLAlchemy
使用
CURD
操作,但在连接到数据库时出现
错误

这是
错误
日志

/usr/local/lib/python3.4/dist-packages/flask_sqlalchemy/__init__.py:819: UserWarning: SQLALCHEMY_DATABASE_URI not set. Defaulting to "sqlite:///:memory:".
  'SQLALCHEMY_DATABASE_URI not set. Defaulting to '
/usr/local/lib/python3.4/dist-packages/flask_sqlalchemy/__init__.py:839: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
这是我的代码和设置

# database.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
sqldb = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:root@localhost/myDbName"


# create app
def create_app():
    sqlDB = SQLAlchemy(app)
    sqlDB.init_app(app)
    sqlDB.create_all()
    return app
这是models.py

from ..database import create_app
sqldb = create_app()
#  Users Model
class Users(sqldb.Model):
    __tablename__ = 'users'
    id = sqldb.Column(sqldb.Integer, primary_key = True)
    db = sqldb.Column(sqldb.String(40))
    def __init__(self,email,db):
        self.email = email
        self.db = db
    def __repr__(self,db):
        return '<USER %r>' % self.db

您可能需要将这一行
app.config['SQLALCHEMY\u DATABASE\u URI']=“mysql…”
放在
SQLALCHEMY(app)
实例之前

另一个选项是创建不带参数的
SQLAlchemy()
,配置URI,最后告诉
SQLAlchemy
通过
sqldb.init\u应用程序(应用程序)


请注意,这是您在
create\u app
功能中所做的,但您从未使用过它?

与上面的答案类似,如果您以这种方式使用,请更改

sqldb = SQLAlchemy(app)


谢谢@B.Barbieri:)现在错误消失了,但新的错误出现了。sqlalchemy扩展未注册到当前应用程序。请确保首先调用init_app()。这不太清楚从何而来,主要是因为您的导入非常混乱。。。您可能需要删除此
create_app
功能,并从
database.py
进行所有导入:这将阻止您在完全配置
sqldb
之前尝试使用它。
sqldb = SQLAlchemy(app)
sqldb = SQLAlchemy()