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()