Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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_Class_Flask_Import_Module - Fatal编程技术网

Python 名称';类名';没有定义

Python 名称';类名';没有定义,python,class,flask,import,module,Python,Class,Flask,Import,Module,我的Flask项目结构如下所示: matcha |- matcha |- template static __init__.py matcha.py user.py user.py: 在matcha.py中,我创建了一个user类的引用,并在/login页面上尝试从user类文件调用login()方法 import os import sqlite3 f

我的
Flask
项目结构如下所示:

matcha
    |- matcha
           |- template
              static
              __init__.py
              matcha.py
              user.py
user.py:

在matcha.py中,我创建了一个
user
类的引用,并在
/login
页面上尝试从
user
类文件调用
login()
方法

import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
from . import user

app = Flask(__name__)
app.config.from_object(__name__)
user = User()

...    

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if user.login(username, password):
            return redirect(url_for('index'))
        else:
            error = "Invalid username or password"
    return render_template('login.html', error=error)
完全回溯:

File "c:\users\stanc\desktop\matcha\matcha\__init__.py", line 1, in <module>
from .matcha import app
File "c:\users\stanc\desktop\matcha\matcha\matcha.py", line 8, in <module>
user = User()
NameError: name 'User' is not defined
文件“c:\users\stanc\desktop\matcha\matcha\\uuuu init\uuuu.py”,第1行,在
来自.matcha导入应用程序
文件“c:\users\stanc\desktop\matcha\matcha\matcha.py”,第8行,在
user=user()
NameError:未定义名称“用户”

在我看来,您正在导入
用户
模块,而不是
用户
模块中编写的
用户

因此,您需要将代码重新编写为

from .user import User  # change your import to this
user = User()

我很确定这会解决您的问题。

发布完整的回溯。也许可以尝试使用
user=user.user()
?(为实例
user
使用另一个名称可能会更好,因为它不会对模块
user
进行阴影处理)
from .user import User  # change your import to this
user = User()