Python 所有返回404

Python 所有返回404,python,flask,Python,Flask,我一直在尝试为一个项目从使用sqlite转向使用sqlalchemy。这导致我移动了很多文件,我似乎破坏了我的应用程序路由,我无法解释如何。代码和文件结构见下文。简言之,我现在可以回去工作的唯一途径是我构建的招摇过市的UI,这可能只是因为flask无法处理我所知的途径。任何帮助都将不胜感激。请记住,我是flask的新手,因此如果这是一个非常愚蠢的问题,请原谅我,stackoverflow上的其他答案最终导致我创建了create_app函数,虽然这确实让flask站点运行,但我认为@app.rou

我一直在尝试为一个项目从使用sqlite转向使用sqlalchemy。这导致我移动了很多文件,我似乎破坏了我的应用程序路由,我无法解释如何。代码和文件结构见下文。简言之,我现在可以回去工作的唯一途径是我构建的招摇过市的UI,这可能只是因为flask无法处理我所知的途径。任何帮助都将不胜感激。请记住,我是flask的新手,因此如果这是一个非常愚蠢的问题,请原谅我,stackoverflow上的其他答案最终导致我创建了create_app函数,虽然这确实让flask站点运行,但我认为@app.route根本没有被调用。
我的文件结构如下:

Project
   |--- project.py (Runs the project)
   |--- Config.py (Holds the class config)
   |--- web 
   |  |--- __init__.py (See below)
   |  |--- routes.py (Hols the routes)
   |  |--- api (Swagger ui and other scripts)
   |  |  |--- __init__.py
   |  |  |--- swagger.yaml
My project.py:

from web import create_app
import db
import os

app = create_app()

if __name__ == "__main__":
    app.run()
else:
    if not os.path.exists("./Project.db"):
        print(" * Building Database")
        db.build_db()
        print(" * Database built")
    print(" * Database exists")
My web/init.py:

from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import Config
import connexion

db = SQLAlchemy()

def create_app():
    app = connexion.FlaskApp(__name__, specification_dir="./api")
    app.add_api("swagger.yaml")
    app = app.app
    app.config.from_object(Config)
    db.init_app(app)
    return app
#migrate = Migrate(app, db)

from web import routes, models
My web/routes.py:(为简洁起见剪掉)


斯威格·亚马尔的基本路线是什么?不是connexion方面的专家,但看起来您绕过了自己的路线,而只是使用了Swagger配置。我希望
specification\u dir=“./”
,然后
app.add\u api(“./api/swagger.yaml”)
基本路径就是/,这是因为试图保持与不同程序api的兼容性。虽然这在以前确实有效,但我决定尝试将基本路径更改为/api以用于swagger,我也遇到了同样的问题。我可以在/api/ui上访问到招摇过市的ui,但是我的web基本路径(如/web和/login)都遇到了404'sIs,这就是当你尝试我的建议时会发生什么?当我尝试你的建议时,我遇到了与以前相同的问题,唯一改变的是api ui被移动到了不同的路径。因此,我可以将其移动到/api/ui,而不是/ui,但是我的路由返回404的错误仍然存在。
#! python3
from web import create_app, routes
from web.forms import LoginForm
import web.api
import flask

app = create_app()

#############
# Home URLs #
#############
@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        return flask.redirect(flask.url_for('home'))
    return flask.render_template('login.html', title='Sign In', form=form)

@app.route("/web")
def home():
    devices = web.api.devices.get()
    for device in devices:
        device.update({"model": web.api.models.get_devices_model(device["alias"])["model"]})
    return flask.render_template("home.html", devices=devices)