python flask ImportError:没有名为views.login的模块

时间:2014-07-28 14:43:59

标签: flask flask-login flask-admin flask-extensions

我有一个名为flaskr的应用。当我想从视图中导入views.login`时。它给了我错误:

   File "C:\Projects\flaskr\flaskr.py", line 28, in <module>
     from flaskr.views.login import login
ImportError: No module named views.login

在我将所有方法放入flaskr.py文件之前。我想将每个函数移动到不同的视图,比如login,show_entries,log_out,就像MVC有不同的视图一样。

flaskr.py

from sqlite3 import dbapi2 as sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
import os

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

from flaskr.views.login import login
app.register_blueprint(login)

if __name__ == '__main__':
    app.run(debug = True)

login.py

from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
from jinja2 import TemplateNotFound

login = Blueprint('login', __name__,template_folder='../template')

@app.route('/login')
def login():
    return render_template('login.html')

1 个答案:

答案 0 :(得分:0)

创建名为app或其他的文件夹。 在app中创建__init__.py文件:

from sqlite3 import dbapi2 as sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
import os

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

from app import views

app.register_blueprint(views.login)

将app.run方法移动到根目录

中的单独start.py文件中
from app import app

if __name__ == '__main__':
    app.run(debug = True)

在app /中创建文件夹视图。在视图中创建__init__.py 现在你可以有这样的结构:

your_project_name/
    |app/
    |__init__.py            
        |views/
            |__init__.py
            |login.py
    start.py

抱歉,如果有错误。