2017-12-09 6 views
-1

マイFlaskプロジェクト構造を定義されていない以下のようになります。私はuserの参照を作成matcha.py名が 'className' の

class User(): 
    def __init__(self): 
     db = get_db() 
    def login(username, password): 
     ... 
    def register(email, username, firstname, lastname, password): 
     ... 

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

がuser.pyクラスと/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) 

完全トレースバック:あなたはuserモジュールをインポートしているのか、私が見ることができるから、

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 
+0

完全なトレースバックを投稿してください。 –

+0

おそらく 'user = user.User()'で試してみてください。 (インスタンス 'user'の別の名前を使用すると、モジュール' user'をシャドーしないほうが良いでしょう) – PRMoureu

答えて

0

、ないuserモジュール内に記述Userクラス。

はこのため、私はそれがあなたの問題を解決しますかなり確信しているとして再書き込みあなたのコード、

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

する必要があります。

関連する問題