【问题标题】:How to fix "NameError: name 'default' is not defined"? [closed]如何修复“NameError:未定义名称‘默认’”? [关闭]
【发布时间】:2019-12-14 13:10:20
【问题描述】:

我正在使用烧瓶和 SQLalchemy 设置一个简单的数据库,但是我为我的类设置的属性无法识别“默认”名称。

我正在使用 Python 3.7.4、Flask 1.1.1 和 Flask-SQLALchemy 2.4。我试过重新安装 SQLAlchemy,并仔细检查我的语法。

这是我正在使用的模块:

from flask import Flask, render_template, url_for, flash, redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
from forms import Registrationform, Loginform, BudgetEntry

这是我的一门课

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), nullable=False, unique=True)
    email = db.Column(db.String(120), nullable=False, unique=True)
    image_file = db.Column(db.String(20), nullable=False, default=default.jpg)
    password = db.Column(db.String(20), nullable=False)
    budgets = db.relationship("Budget", backref="author", lazy=True)

现在当我进入命令行并尝试导入 db 时,它给了我一个错误:

NameError: name 'default' is not defined

【问题讨论】:

  • 您的标题(“默认”未定义)与声称的错误不一致(“db”未定义)
  • 请提供minimal reproducible example,如果遇到错误,请提供完整的错误堆栈。
  • 似乎db 确实没有定义。所以,你应该定义它。
  • 看起来Flask-SQLAlchemy quickstart guide 显示了您应该如何定义db

标签: python flask sqlalchemy


【解决方案1】:

如果(正如您的 title 声称的那样)您收到错误 'default' is not defined 那么这是因为您目前有:

image_file = db.Column(db.String(20), nullable=False, default=default.jpg)

大概是你想要的

image_file = db.Column(db.String(20), nullable=False, default="default.jpg")

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 2021-08-23
    • 2017-08-30
    • 2021-01-24
    • 1970-01-01
    相关资源
    最近更新 更多