我正在按照本教程的说明在Flask中使用Python 2.7构建用户登录系统。如何使“从目录导入外部目录”在Python中工作?
Intro to Flask: Signing In and Out
我有这个瓶的应用程序结构。
flaskapp/
└── app/
├── user/
│ ├── __init__.py
│ ├── static/
│ ├── templates/
│ ├── forms.py
│ ├── routes.py
└── runserver.py
在教程中,我要编辑这个文件。
app/intro_to_flask/routes.py
在该文件中您已有此代码。
from user import app
from flask import render_template, request, flash
from forms import ContactForm
from flask.ext.mail import Message, Mail
mail = Mail()
.
.
.
# @app.route() mappings start here
我得到这个错误。
ImportError: cannot import name app
这就是说,我不能从用户导入应用程序。我已经试过:
from . import app
我真的不知道该如何解释这里的问题,但我的编辑正试图在其内部导入外部目录的用户目录中的Python文件?如果应用程序目录不在用户目录中,您如何从用户导入应用程序中执行操作?我在这里错过了什么?
在runserver.py中,我能够做到这一点,因为我认为runserver.py存在于app目录中。尽管如此,我无法在routes.py中执行此操作。
如果我无法导入应用程序,我不能在瓶定义路由这样:
@app.route('/')
def index():
return "Testing route!"
@gddc - 我不知道相信这是重复的。这个问题与相对导入无关。所讨论的变量实际上需要在'__init __。py'中定义,我怀疑它已经关闭了,或者使用了与本教程中使用的名称不同的名称。我认为,进口是正确的。 – ArtOfWarfare
尝试'导入用户;打印(用户)'在你的脚本中,在失败的行之前。发布它在这里打印的内容 - 可能会让我们对发生的事情有更多的了解。 – ArtOfWarfare
@ArtOfWarfare:<从模块“用户”“... \ PycharmProjects \ flaskapp \程序\用户\ __ __初始化PYC。”> – Fastidious