Приложение Flask: не удалось создать URL для конечной точки post_to_db - PullRequest
0 голосов
/ 08 октября 2019

Я новичок в создании приложений Flask, поэтому я могу упустить что-то очевидное. То, что я пытаюсь сделать, это взять значение из ползунка и увеличить значение в моей таблице postgresql на значение ползунка, а затем увеличить другое значение в моей таблице postgresql на 1. Я получаю ошибку:

werkzeug.routing.BuildError: Could not build url for endpoint 'post_to_db'. Did you mean 'static' instead?

Вот мой HTML:

<form method="POST" action="{{ url_for('post_to_db') }}">
    <input class='slider'id="mydata" name="mydata" type="range" min="0" max="10" value="5" step='1'>
    <div id='button-dock'>
        <button type='submit'>"Show Me Another"</button>
    </div>
</form>

Вот мой питон:

class Dataentry(db.Model):
    __tablename__ = "shoe-ratings"

    id = db.Column(db.Integer, primary_key=True)
    total_score = db.Column(db.Integer)
    num_ratings = db.Column(db.Integer)

    def __init__(self, total_score, num_ratings):
        self.total_score = total_score
        self.num_ratings = num_ratings

    def __repr__(self):
        return '<id {}>'.format(self.id)

    def serialize(self):
        return {
            'id': self.id,
            'total_score': self.total_score,
            'num_ratings': self.num_ratings
        }

@app.route("/virgil_io/submit/", methods=["POST"])
def post_to_db():

    score = request.form['mydata']

    shoe = Dataentry.query.first()
    shoe.total_score = shoe.c.total_score + score
    shoe.num_ratings = shoe.c.num_ratings + 1

    try:
        db.session.add(shoe)
        db.session.commit()
    except Exception as e:
        print("\n FAILED entry\n")
        print(e)
        sys.stdout.flush()
    return "Success"

@APP.route('/virgil_io/')
def index():
    return flask.render_template('index.html')

Вот мой каталог:

enter image description here

Что я пробовал:

  • Создание папки / submit в моем каталоге.
  • Извлечение methods=["POST"]

Есть идеи? Спасибо!

1 Ответ

0 голосов
/ 10 октября 2019

Как всегда, это была глупая мелочь. Мое приложение было названо APP, но я использовал app для этого метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...