我有一个名为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')
答案 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
抱歉,如果有错误。