【问题标题】:'Cannot import name' error in Python using Flask使用 Flask 在 Python 中出现“无法导入名称”错误
【发布时间】:2020-02-28 13:52:05
【问题描述】:

我正在构建一个 Web Flask-SQLAlchemy 应用程序,按照 Udemy 课程的分步操作,但只要我输入...

 from app import db

... 在终端中,我收到“无法从应用程序导入名称 'db'”错误。从下面的代码可以看出,我已经使用 'pip' 安装了 Flask 和 SQLAlchemy。

from flask import Flask, render_template, request
from flask.ext.sqlalchemy import SQLAlchemy

app= Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:postgres123@localhost/height_collector'

class Data(db.Model):
    __tablename__="data"
    id = db.Column(db.Integer, primary_key = True)
    email_ = db.Column(db.String(120), unique = True)
    height_ = db.Column(db.Integer)

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/success", methods = ['POST'])
def success():
    if request.method=='POST':
        email = request.form["email_name"]
        height = request.form["height_name"]
        print(email, height)
        return render_template("index.html")

if __name__ == '__main__':
    app.debug = True
    app.run()

错误会更进一步吗?还是个菜鸟,所以不太清楚老师在这里做什么。

【问题讨论】:

  • 你为什么在终端输入from app import db
  • 本教程要求您具体做什么?
  • @thomask 显然它是创建“数据”类的新实例。 (我已经编辑了帖子以包含整个 app.py 文件的代码)。然后他从脚本中导入 db 对象(显然也是最后 3 行代码派上用场的地方。他首先键入 python 然后 >>>from app import db 那是我收到错误消息的时候
  • @SaiprasadBalasubramanian 这是一个网络应用程序,询问用户他/她的电子邮件地址和身高(以厘米为单位)。提交信息后,用户会收到一封电子邮件,其中包含他/她的身高以及提交身高的用户的平均身高。内容有一个单独的 htmlcss 文件

标签: python flask sqlalchemy


【解决方案1】:

这里的问题是您在创建数据库实例之前导入它。已经回答了一个类似的问题。 flask - blueprint - sqlalchemy - cannot import name 'db' into moles file

【讨论】:

  • @argyris 文件名确实是app.py
【解决方案2】:

您保存上述代码的文件名应称为app.py

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 2013-05-13
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    相关资源
    最近更新 更多