尽管 routes.py 已成功导入,但所有路由都在 flask 中给出 404

All routes giving 404 in flask despite the routes.py being successfully imported

我目前正在使用烧瓶后端,但遇到了一个问题,即所有路由 return 都是 404,尽管 routes.py 显然是 运行。

routes.py:

import sys, os, json
from flask import Flask, render_template
from flask_cors import CORS, cross_origin

app = Flask(__name__)
app.config.from_pyfile('config.py')
CORS(app)


@app.route('/', endpoint='index')
@app.route('/index', methods=['GET'], endpoint='index')
@cross_origin()
def index():
    print('Hello world!', file=sys.stderr)

    return render_template('index.html', title='home')


@app.route('/projects', endpoint='projects')  # route for projects showcase including json project data loading
@cross_origin()
def projects():
    projects = os.path.join(app.static_folder, 'data', 'projects.json')

    with open(projects) as pData:
        data = json.load(pData)

    return render_template('projects.html', title='showcase', data=data)


@app.route('/contact', endpoint='contact')
def contact():
    return render_template('contact.html', title='contact')


print('Hello routes!', file=sys.stderr) #testing line

当我启动它时,输出是这样的:

 * Serving Flask app 'ClayG' (lazy loading)
 * Environment: development
 * Debug mode: on
Hello routes!
 * Restarting with stat
 * Debugger is active!
Hello routes!
 * Debugger PIN: 274-753-929
 * Running on http://127.0.0.1:5000/

routes.py 末尾的打印功能运行,所以我的应用程序正在运行,但是当我访问 localhost:5000 时,我得到一个 404,在终端输出中只有这个

127.0.0.1 - - [05/Feb/2022 17:20:29] "GET / HTTP/1.1" 404 -

其他文件和文件结构

.
├── ClayG.py
├── .flaskenv
├── app
│   ├── config.py
│   ├── routes.py
│   └── __init__.py

ClayG.py

import os, sys
sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__))))
from app import app

.flaskenv

FLASK_APP=ClayGale
FLASK_ENV=development

init.py

from flask import Flask

from . import routes

app = Flask(__name__)

config.py

class Config:
    STATIC_FOLDER = 'static'
    TEMPLATES_FOLDER = 'templates'
    DEBUG = True
    TESTING = True

我注意到的一件事是将 FLASK_ENV = 'development' 添加到配置 class 是它仍然作为生产启动,我只能让它在开发中启动使用 .flaskenv 文件。不幸的是,我对从这里开始做什么感到困惑,所以关于尝试什么的任何智慧都会有所帮助。

您已经创建了两个 Flask 应用程序。 routes.py 中的一个带有端点,__init__.py 中的一个新的完全是空的。您应该在 __init__.py 文件中使用之前创建的应用程序:

from . import routes

app = routes.app