我试着用FlaskSQLAlchemy操作CURD.但在连接数据库时获得Error.

这是Error根圆木.

/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 '

这是我的code & setup美元

# 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

这是模型.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

这里是路由.py

# Import __init__ file
from __init__ import app
import sys
# JSON 
from bson import dumps
# login
@app.route('/', methods = ['GET'])
def login():
    try:
        # import users model
        from Model.models import Users,sqldb
        sqldb.init_app(app)
        sqldb.create_all()
        getUser = Users.query.all()
        print(getUser)
        return 'dsf'
    except Exception as e:
        print(e)
        return "error." 

推荐答案

你可能需要把这行app.config['SQLALCHEMY_DATABASE_URI'] = "mysql..."放在SQLAlchemy(app)实例之前.

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

请注意,这是您在create_app函数中所做的,但您从未使用过它?

Python-3.x相关问答推荐

这是重命名极地df列的最好方式吗?

Python3和请求-超文本标记语言:试图抓取一个网站-没有取回真正的超文本标记语言代码

pandas查找另一列中是否存在ID

我可以设置树视图层次 struct 按钮吗?

以特定方式重新排列 pandas 数据框的列

Python根据条件从多行读取值

在REPLACE INTO中引用变量会抛出sqlite3.OperationalError

将 rgb numpy 图像转换为 rgb 列表和相应的索引值

如何使用 django rest 框架在 self forienkey 中删除多达 n 种类型的数据?

Python 3 `str.__getitem__` 的计算复杂度是多少?

在不使用字符串方法的情况下查找字符串最后一个单词的长度 - Python

解包时是否可以指定默认值?

获取比较多列的最大值并返回特定值

全局捕获快速 api 中的异常

为什么 virtualenv 会有效地禁用 Python 3 制表符补全?

如何在 Selenium 和 Python 中使用类型查找元素

Python:&= 运算符

Python 3 - Zip 是 pandas 数据框中的迭代器

使用 asyncio 的多个循环

如何修复:cx_Oracle.DatabaseError:DPI-1047:找不到 64 位 Oracle 客户端库 - Python