Python 烧瓶SQLAlchemy导入数据库导入
我正在使用SQLAlchemy的flask,在设置了所有配置设置之后,我在模型上得到了db导入错误 导入错误:无法导入名称“db” 我的主应用程序\uuuuu init\uuuuuPython 烧瓶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
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对象并在需要时导入它。