python - 如何修复“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
解决方案
如果(正如您的标题所声称的)您收到错误“默认”未定义,那么这是因为您目前拥有:
image_file = db.Column(db.String(20), nullable=False, default=default.jpg)
想必你想要
image_file = db.Column(db.String(20), nullable=False, default="default.jpg")
推荐阅读
- redirect - Lighttpd 重定向和重写太多重定向
- postgresql - 相同 wal_keep_segments 的等效 WAL 保留变化很大
- html - ASP.net webgrid 在 html 中的 tbody 之后生成 tfoot
- boost - 如何使用 boost::beast 避免回调地狱?
- javascript - 如何将带有 HTML 标签的字符串打印为 HTML
- python - Tensorflow 对象检测:经过训练的模型不会预测图像中同一对象的所有实例
- jmeter - 尝试生成 jmeter 报告时出现“无法创建临时目录”错误
- python - 子进程中的外壳替换
- c# - 在 ASP.NET MVC 中将 ViewModel 中的列表从视图传递到控制器
- ios - Swift 开发版和生产版的不同 Web 服务器