0

我有一个名为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文件之前。我想将每个功能移动到不同的视图,比如登录、show_entries、log_out,就像 MVC 有不同的视图一样。

烧瓶器.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)

登录.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')
4

1 回答 1

1

创建名为 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

对不起,如果有错误。

于 2014-07-30T06:16:33.390 回答