首页 > 解决方案 > 如何修复“NameError:未定义名称‘默认’”?

问题描述

我正在使用烧瓶和 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

标签: pythonflasksqlalchemy

解决方案


如果(正如您的标题所声称的)您收到错误“默认”未定义,那么这是因为您目前拥有:

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

想必你想要

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

推荐阅读