python自动填充html数据需要数字,但数据类型为字符串

2024-04-26 14:53:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python自动填充html表单数据。如果我在没有自动填充数据的情况下运行代码,网页加载就可以了。但是当我添加自动填充数据时,我得到:

TypeError: %d format: a number is required, not unicode

这是自动填充数据的代码:

class EditCarHandler(webapp2.RequestHandler):
template_variables = {}

def get(self):

    template = JINJA_ENVIRONMENT.get_template('/edit_cars.html')
    self.response.write(template.render(self.template_variables))

    carID = self.request.get('id')
    carData = Car.get_by_id(int(carID))

    colorArray = ['', '', '', '', '', '', '', '', '', '']
    for i in carData.color:
        if i == "red":
            colorArray[0] = " checked"
        elif i == "orange":
            colorArray[1] = " checked"
        elif i == "yellow":
            colorArray[2] = " checked"
        elif i == "green":
            colorArray[3] = " checked"
        elif i == "blue":
            colorArray[4] = " checked"
        elif i == "purple":
            colorArray[5] = " checked"
        elif i == "black":
            colorArray[6] = " checked"
        elif i == "white":
            colorArray[7] = " checked"
        elif i == "gray":
            colorArray[8] = " checked"
        elif i == "other":
            colorArray[9] = " checked"

    conditionArray = ['', '', '']
    if carData.condition == "new":
        conditionArray[0] = " checked"
    elif carData.condition == "used":
        conditionArray[1] = " checked"
    elif carData.condition == "damaged":
        conditionArray[2] = " checked"


    self.response.write("""
    <main>
        <form action="/editCarsForm" method="get">
            <input type="hidden" name="id" value="%s">
            <fieldset>
                <legend>Make:</legend>
                <input type="text" name="car-make" value="%s">
                <legend>Model:</legend>
                <input type="text" name="car-model" value="%s">
            </fieldset>
            <fieldset>
                <legend>Year:</legend>
                <input type="number" name="car-year" min="1960" max="2016" value="%s">
            </fieldset>
            <fieldset>
                <legend>Color:<legend>
                <input type="checkbox" name="car-color" value="red"%s>Red
                <input type="checkbox" name="car-color" value="orange"%s>Orange
                <input type="checkbox" name="car-color" value="yellow"%s>Yellow
                <input type="checkbox" name="car-color" value="green"%s>Green
                <input type="checkbox" name="car-color" value="blue"%s>Blue
                <input type="checkbox" name="car-color" value="purple"%s>Purple
                <input type="checkbox" name="car-color" value="black"%s>Black
                <input type="checkbox" name="car-color" value="white"%s>White
                <input type="checkbox" name="car-color" value="gray"%s>Gray
                <input type="checkbox" name="car-color" value="other"%s>Other
            </fieldset>
            <fieldset>
                <legend>Condition:</legend>
                <input type="radio" name="car-condition" value="new"%s>New
                <input type="radio" name="car-condition" value="used"%s>Used
                <input type="radio" name="car-condition" value="damaged"%s>Damaged
            </fieldset>
            <fieldset>
                <legend>Today's Date:</legend>
                <input type="date" name="car-date" min="2016-01-01" max="2017-01-01" value="%s">
            </fieldset>
            <br>
            <input type="submit" value="Update Car">
            <input type="hidden" name="action" value="edit_car">
        </form>
        <br>
        <form action="/viewCars" method="get">
            <button>View Cars</button>
        </form>
    </main>
    """ % (carID, carData.make, carData.model, carData.year, 
    colorArray[0], colorArray[1], colorArray[2], colorArray[3], colorArray[4], colorArray[5], colorArray[6], colorArray[7], colorArray[8], colorArray[9],
    conditionArray[0], conditionArray[1], conditionArray[2], 
    carData.date))

谢谢你的帮助


Tags: nameinputgetvaluetypecarcolorlegend