Python 全球名称';建造商';没有定义
我正在创建一个flask应用程序,其中有一个名为models.py的模块,代码如下:Python 全球名称';建造商';没有定义,python,flask,Python,Flask,我正在创建一个flask应用程序,其中有一个名为models.py的模块,代码如下: import datetime, re from app import db def slugify(s): return re.sub('[^\w]+', '-', s).lower() class Entry(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(1
import datetime, re
from app import db
def slugify(s):
return re.sub('[^\w]+', '-', s).lower()
class Entry(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
slug = db.Column(db.String(100), unique=True)
body = db.Column(db.Text)
created_timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
modified_timestamp = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now)
def __init__(self, *args, **kwargs):
super(Entry, self).__init__(*args, **kwargs) # Call parent
constructor.self.generate_slug()
def generate_slug(self):
self.slug = ''
if self.title:
self.slug = slugify(self.title)
def __repr__(self):
return '<Entry: %s' % self.title
import os, sys
sys.path.append(os.getcwd())
from main import db
if __name__ == '__main__':
db.create_all()
从ipython控制台,我使用以下方法导入了入口模型:
from models import *
但是,当我尝试运行commnad时:
Entry = (title='A post about flask', body='This is the post body.')
我发现错误:未定义全局名称“构造函数”
我需要帮助找出错误。谢谢删除您的_init__________________________方法的最后一行,或者像这样注释掉它:
def __init__(self, *args, **kwargs):
super(Entry, self).__init__(*args, **kwargs) # Call parent
# constructor.self.generate_slug()
由于
构造函数
没有在任何地方定义,因此解释器不能允许引用它。正如其他人所提到的,构造函数
没有定义。但是,看起来您只需要删除该名称;如果将constructor.self.generate\u slug()
更改为self.generate\u slug()
您的代码应该可以正常工作
def __init__(self, *args, **kwargs):
super(Entry, self).__init__(*args, **kwargs) # Call parent
self.generate_slug()
关于错误,您还不了解什么?错误正告诉您问题所在:代码中没有名为
constructor
。你认为那条线应该做什么?为什么要使用构造函数
?你认为它应该做什么?在条目中。\uuuu init\uuuu
你有constructor.self.generate\u slug()
。这是对构造函数的引用。但是您还没有在任何地方定义构造函数。因此,在引用它之前定义构造函数
,或者删除对它的引用。您尝试运行的确切命令是什么?也就是说,你的意思是写entry=entry(title='关于烧瓶的帖子',body='这是帖子的主体。')
?是的,pydsigner,这就是我想写的