瓶子不允许我访问表单中的下拉菜单项



我有一个带有瓶子的小型Web应用程序。它可以从帖子表单中读取带有request.forms.get的普通文本框,而不是带有下拉菜单的<select>字段。

HTML看起来不错,在这里没有它,但是可以与应用程序代码一起发布。

编辑:

@bottle.post('/combat')
def combat():
    thing = bottle.request.forms.get('name')
    print(bottle.request.forms.get('river'))
    print(type(thing),dir(thing),thing)
    return("THANKS FOR FIGHTING")
#print("starting server")
bottle.run(host='localhost',port=8080)

和模板:

<html>
<body>
<form action="/combat" method="post">
Choose your attacker:
<select name="attacker">
    % for unit in unitlist:
        <option value="{{unit}}">{{unit}}</option>
    % end    
</select>
<p>
Choose your defender:
<select name="defender">
    % for unit in unitlist:
        <option value="{{unit}}">{{unit}}</option>
    % end    
</select>
<p>
Location:
<select name="location">
    <option value="open">Out in the Open</option><br>
    <option value="city">In a City</option><br>
    <option value="fort">In a Fort</option>
</select>
    <p>
<input type="checkbox" name="river" value="True">On a river<br>
<input type="checkbox" name="fortified" value="True">Fortified<br>
<p>

<input name="name" type="text" />
<input type="submit" value="Submit">

</form>
</body>
</html>

我可以发布它的渲染,如果有帮助?

确保正在处理已发布的数据的视图接受发布请求,并且选择字段应包含适当的 name

from bottle import get, post, request # or route
@get('/form') # or @route('/form')
def form():
    return '''
        <form action="/example" method="post">
            Select: <select name="example">
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
            </select>
            <input value="Submit" type="submit" />
        </form>
    '''  
@post('/example') # or @route('/example', method='POST')
def example():
    select_field_data = request.forms.get('example')
    ...

,这似乎是一个错误的警报 - 现在正在工作,我没有太多改变!不确定问题是什么,除了现在打开调试模式并摆弄显示bottle.forms.get

的代码

希望我没有浪费人们的时间...

最新更新