Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 烧瓶SQLAlchemy导入数据库导入_Python_Python 3.x_Flask_Flask Sqlalchemy - Fatal编程技术网

Python 烧瓶SQLAlchemy导入数据库导入

Python 烧瓶SQLAlchemy导入数据库导入,python,python-3.x,flask,flask-sqlalchemy,Python,Python 3.x,Flask,Flask Sqlalchemy,我正在使用SQLAlchemy的flask,在设置了所有配置设置之后,我在模型上得到了db导入错误 导入错误:无法导入名称“db” 我的主应用程序\uuuuu init\uuuuu from flask_api import FlaskAPI from flask_sqlalchemy import SQLAlchemy import os import json from flask import Flask from flask_pymongo import PyMongo from fla

我正在使用SQLAlchemy的flask,在设置了所有配置设置之后,我在模型上得到了db导入错误

导入错误:无法导入名称“db”

我的主应用程序\uuuuu init\uuuuu

from flask_api import FlaskAPI
from flask_sqlalchemy import SQLAlchemy
import os
import json
from flask import Flask
from flask_pymongo import PyMongo
from flask import request

from app.test.controllers import test


def create_app(config_name):
    app = FlaskAPI(__name__)
    CORS(app)
    app.config.from_object(os.environ['APP_SETTINGS'])
    db = SQLAlchemy(app)
    from app.test.controllers import test
    app.register_blueprint(test)
app/test/test.py和model.py中的我的控制器和模型

test.py

from flask import Blueprint, request, redirect, url_for
import json
from flask_sqlalchemy import SQLAlchemy

from app.test.model import TestModel

test = Blueprint('test', __name__, url_prefix='/api/v1')


@test.route('/test/store', methods=['POST'])
def store():
    return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
from app import db

class TestModel(db.Model):
    __tablename__ = 'user_profiles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=False)
    email= db.Column(db.String(255), unique=False)


    def __init__(self, name=None, email=None):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % (self.name, self.email)
mymodel.py

from flask import Blueprint, request, redirect, url_for
import json
from flask_sqlalchemy import SQLAlchemy

from app.test.model import TestModel

test = Blueprint('test', __name__, url_prefix='/api/v1')


@test.route('/test/store', methods=['POST'])
def store():
    return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
from app import db

class TestModel(db.Model):
    __tablename__ = 'user_profiles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=False)
    email= db.Column(db.String(255), unique=False)


    def __init__(self, name=None, email=None):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % (self.name, self.email)
从应用程序导入数据库
类TestModel(db.Model):
__tablename_uuu='user_profiles'
id=db.Column(db.Integer,主键=True)
name=db.Column(db.String(255),unique=False)
email=db.Column(db.String(255),unique=False)
def uuu init uuuu(self,name=None,email=None):
self.name=名称
self.email=电子邮件
定义报告(自我):
返回“”%(self.name,self.email)

您使用的是Flask factory方法,因此在您的模型中初始化SqlAlchemy并将其导入到您的_uinit__; py.py文件中

因此model.py变为

from flask_sqlalchemy import SQLAlchemy    
db = SQLAlchemy()

class TestModel(db.Model):
    __tablename__ = 'user_profiles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=False)
    email= db.Column(db.String(255), unique=False)


    def __init__(self, name=None, email=None):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % (self.name, self.email)

嗨,如果有多个模型。如何导入dbi?我需要创建db实例的单个init文件,然后任何模型都可以访问它。如果需要多个模型文件,则可以将它们放在一个包中(让我们调用包模型),然后在models包的init.py文件中,创建db对象并在需要时导入它。