我創建一個燒瓶應用程序,有一個名爲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(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
我還創建了一個名爲create_db.py與文件下面的代碼:
from models import *
豪:
import os, sys
sys.path.append(os.getcwd())
from main import db
if __name__ == '__main__':
db.create_all()
從IPython的控制檯I採用進口的入門型號版本,當我試圖運行commnad:
Entry = (title='A post about flask', body='This is the post body.')
我得到的錯誤:global name 'constructor' is not defined
我需要幫助找出錯誤。由於
您對錯誤有什麼不瞭解? –
錯誤告訴你到底是什麼問題:代碼中沒有任何名爲'constructor'的東西。你認爲這條線應該做什麼?你爲什麼使用'constructor'?你認爲應該怎麼做? –
在'Entry .__ init__'中,你有'constructor.self.generate_slug()'。這是對'constructor'的引用。但是你沒有在任何地方定義'constructor'。因此,在引用它之前定義'constructor',否則刪除對它的引用。 –