Это, как выглядит моя папка и файлы, такие как:импорта атрибут из родительского каталога
/app
__init__.py
/admin
__init__.py
models.py
и app/__init__.py
файл:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from app.admin.models import *
app = Flask('app')
@app.route('/users', methods=['GET'])
def show_users():
return "list of all Users:\n" + User.query.limit(5).all()
и app/admin/models.py
:
from datetime import datetime
from sqlalchemy.orm import relationship
from flask_sqlalchemy import SQLAlchemy
from app import app
db = SQLAlchemy(app)
class User(db.Model):
pass
Я хочу иметь доступ к моей модели User
в init
файлах, из Import from parent directory и import script from a parenet directory я попытался from app import *
или from .. import app
или же поместить db = SQLAlchemy(app)
в __init__
файл и импортировать его в models.py
с from app import db
или from .. import db
, но я продолжаю получать app
и db
не определены, а также я думаю, что это странно, что я должен импортировать как файл в друг друга.
У меня еще одна проблема: 'невозможно импортировать имя db' – Arman
Импорт модели должен быть после инициализации расширения' db = SQLAlchemy (app) '' из app.admin.models import * ' – metmirr
Теперь это работает! но почему определение db должно быть до импорта моделей? – Arman