4

这是我的基本 HTML 文件:

<html>
<head>
    <title>names</title>
  </head>
  <body>
    <div>PS: <a href="/ps">Home</a></div>
    <hr>
    {% block content %}{% endblock %}
  </body>
</html>

这是我的 tasks.html 文件

{% extends "base.html" %}
{% block content %}
  <div class="page">
  <table>
  <tr>
  <form action="{{ url_for('new_task') }}" method="POST" class=new-task>
  </tr>
  <tr>
  <td>
  <label>name :</label>
  <select name="name" width="100px">
  <option value="1">name1</option>
  <option value="2">name2</option>
  <option value="3">name3</option>
  <option value="4">name4</option>
  <option value="5">name5</option>
  </select>
  </td>
  <td>
  &nbsp;
  &nbsp;
  <input class="button1" type="submit" value="Press">
  </td>
  </form>
   </tr>
   </table>
   </div>
   </table>
{% endblock %}

这是我的python文件views.py

from flask import render_template
from app import app
@app.route('/tasks', methods=['POST'])
def new_task():
    tts = request.form['name']
    flash(str(tts)+'is being selected')
    render_template("tasks.html")
@app.route('/ps')
def ps():
    render_template("ps.html")

我只想打印从下拉菜单中选择的值。但我收到此错误“方法不允许 请求的 URL 不允许该方法。” 实际上我是烧瓶编程的新手请告诉我我在哪里做错了。帮助将不胜感激:)

4

1 回答 1

4

通常不允许的方法与 GET/POST 等表单方法有关。我建议进行一些更改。

模板

<form action="{{ url_for('new_task') }}" method="POST" class=new-task>

查看

@app.route('/tasks/', methods=['GET','POST'])
def new_task():
    if request.method == 'POST':
        tts = request.form['name']
        flash(str(tts)+'is being selected')
    return render_template("tasks.html")
于 2013-06-26T12:19:04.510 回答