为什么 @app.route('/login') 在另一个模块中定义时不起作用



我是Flask的新手。我想知道我是否可以在Flask中将代码分离到不同的模块(我知道Blueprint可以做到这一点(。所以我试着这样分离代码:

Flask-Project
-- app.py  
-- login.py

这里是app.py代码:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()

login.py:中

from app import app

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

当我运行这个Flask项目时,我尝试http://127.0.0.0:5000/login,显示:

Not Found
The requested URL was not found on the server. 
If you entered the URL manually please check your spelling and try again.

为什么http://127.0.0.0:5000/login不工作?

您需要加载login.py模块,以便注册处理程序。请注意import语句的位置。它需要在分配app之后。

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
import login    # Register handlers for /login
if __name__ == '__main__':
app.run()

最新更新