我正在按照本教程的說明在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