【问题标题】:Error while importing module app using from Flask.app import db使用 from Flask.app import db 导入模块应用程序时出错
【发布时间】:2019-12-27 19:07:36
【问题描述】:

我是flask新手,在从python控制台/cmd运行时导入db有问题。

我正面临这个错误:

In[67]: os.getcwd()
Out[67]: 'C:\\Users\\Desktop\\Python\\Flask'
In[68]: os.listdir()
Out[68]: 
['app',
 'app.db',
 'config.py',
 'Flask.py',
 'migrations',
 'venv',
 '__init__.py',
 '__pycache__']

In[69]: from Flask.app.models import User,Post
Traceback (most recent call last):
  File "C:\Users\AppData\Local\Continuum\anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-69-dca3714f084d>", line 1, in <module>
    from Flask.app.models import User,Post
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Desktop\Python\Flask\app\models.py", line 1, in <module>
    from Flask.app import db
ImportError: cannot import name 'db' from 'Flask.app' (C:\Users\Desktop\Python\Flask\app\__init__.py)

我的项目树:

Flask/
  app/
    __init__.py
    forms.py
    models.py
    routes.py
  __init__.py
  config.py
  Flask.py

Flask/init.py



app/init.py

from flask import Flask
from Flask.config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config.from_object(Config)

db = SQLAlchemy(app)
migrate = Migrate(app, db)

from Flask.app import routes, models

app/models.py

from Flask.app import db
from datetime import datetime


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))

    def __repr__(self):
        return '<User {}>'.format(self.username)

当通过命令运行烧瓶时,它工作正常。但是当我尝试通过 python 控制台或 cmd 运行时,我无法成功运行。 谢谢

【问题讨论】:

    标签: python-3.x flask flask-sqlalchemy python-import


    【解决方案1】:

    导入模块时出现问题修复这个....

    在 Flask 中删除 __init_.py 在这里你不想要一个 init 文件。如果 Flask 文件夹是根文件夹,其他人是里面的子文件夹我猜你的主文件是 Flask.py。所以 改变

    from Flask.app import db
    

    from app import db
    

    考虑到 db 在 app/init.py 中声明

    【讨论】:

    • 删除 Flask/__init__.py 后出现错误:>>> from app import db Traceback (last last 最近调用): File "", line 1, in 文件“C:\Users\Desktop\Python\Flask\app_init_.py”,第 2 行,在 从 Flask.config 导入配置文件“C:\Users\Desktop\Python\ Flask\Flask.py",第 1 行,在 中 from .app import app ImportError: 没有已知父包的尝试相对导入 >>>
    • srry 看起来你在 flask.py 中使用 config.py 内容.....在这种情况下,将 config.py 文件放在 app 文件夹中并从 Flask.config 导入中更改``` ``` 从 app.config 导入
    • 最后只有主源文件或在你的情况下 Flask.py 文件应该在外面,其他文件应该在 app 文件夹内....根据那个重构代码导入
    • 谢谢,我按照你的要求进行了重组,但 Flask.py 的内容来自 .app 导入应用程序,在执行烧瓶运行时出错:文件“C:\Users\I505412\Desktop\Python \Flask\Flask.py",第 1 行,在 中来自 .app 导入应用程序 ImportError:尝试使用没有已知父包的相对导入
    猜你喜欢
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多