【发布时间】:2017-12-09 19:44:38
【问题描述】:
我的Flask 项目结构如下:
matcha
|- matcha
|- template
static
__init__.py
matcha.py
user.py
user.py:
class User():
def __init__(self):
db = get_db()
def login(username, password):
...
def register(email, username, firstname, lastname, password):
...
在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
【问题讨论】:
-
发布完整的回溯。
-
也许可以试试
user = user.User()? (为实例使用另一个名称user可能会更好地不要隐藏模块user)
标签: python class flask import module