Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 全球名称';建造商';没有定义_Python_Flask - Fatal编程技术网

Python 全球名称';建造商';没有定义

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

我正在创建一个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(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,这就是我想写的