我目前正在处理一个flask后端,但遇到了一个问题,即尽管routes.py显然在运行,但所有路由都返回404。
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
粘土质
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__)
配置
class Config:
STATIC_FOLDER = 'static'
TEMPLATES_FOLDER = 'templates'
DEBUG = True
TESTING = True
我注意到的一件事是,将FLASK_ENV="development"添加到配置类中,它仍然作为生产启动,我只能使用.flaskenv文件在开发中启动它。不幸的是,我只是困惑于从这里该做什么,所以任何关于尝试什么的智慧都会有所帮助。
您已经创建了两个Flask应用程序。一个在具有端点的routes.py
中,另一个在完全空的__init__.py
中。您应该在__init__.py
文件中使用以前创建的应用程序:
from . import routes
app = routes.app