Flask все маршруты возвращают 404 - PullRequest
0 голосов
/ 05 марта 2020

Я пытался перейти от использования sqlite к sqlalchemy для проекта. Это заставило меня переместить много файлов, и я, кажется, разрушил маршрутизацию моего приложения, и я не могу объяснить, как. Ниже приведен код и структура файла. Короче говоря, единственный путь, который я могу теперь вернуть и работать, - это созданный мной интерфейс Swagger, который, вероятно, работает только потому, что 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

Мой проект.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")

Мой веб / 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 / rout.py: (взято для краткости)

#! 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...