Почему я получаю эту ошибку "TypeError: могу только объединить str (не" int ") в str"? - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать простое flask приложение, которое бросает кости. Похоже, что ошибка происходит в строке:

for roll_num in range(quantity):

Как мне решить эту ошибку "Ошибка типа: можно только объединить str (не" int ") в str"?

from flask import Flask, render_template, request
from random import randint

app = Flask(__name__)

class Die():
    """A class representing a single die."""

        def __init__(self, num_sides):
    """Initialize a single die."""
        self.num_sides = num_sides

    def roll(self):
        """Return a random value between 1 and number of sides"""
        return randint(1, self.num_sides)

global dice_roll
dice_roll = Die

@app.route('/entry')
def entry_page():
    return render_template('entry.html', the_title='Welcome to Roll the Bones!')

@app.route('/results', methods=['POST'])
def roll_die():
    global dice_roll

    sides = request.form['sides']
    quantity = request.form['quantity']
    title = 'Here are your results:'

    die = Die(sides)

    results = []
    for roll_num in range(quantity):
        result = die.roll()
        results.append(result)

    return render_template('results.html', the_title=title, the_sides=sides, the_quantity=quantity, the_results=results)

1 Ответ

0 голосов
/ 06 мая 2020

Я думаю, это потому, что значения, отправленные из браузера, не отображаются как их правильный тип после того, как они отправлены.

sides = request.form['sides']
quantity = request.form['quantity']

Один или оба из них должны быть заключены в int()

sides = int(request.form['sides'])
quantity = int(request.form['quantity'])

Я считаю, что quantity представляется в виде строки.

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