我正在开发一个简单的用户界面来启动和停止游戏。我编写的基本超文本标记语言如下(game_id
由JS填充):
<div align="center" class="top">
<div align="left" class="game-id-input">
Game ID: <input type="text" name="game_id" id="game_id">
</div>
<div align="right" class="buttons">
<form action="{{ url_for('start_game', game_id=game_id) }}" method="get">
<input type="submit" name="start" value="Start game" class="btn btn-success"></input>
</form>
<form action="{{ url_for('end_game', game_id=game_id) }}" method="get">
<input type="submit" name="end" value="End game" class="btn btn-danger"></input>
</form>
</div>
</div>
看起来像是
我还为每个表单定义了烧瓶路由函数:
@app.route("/start_game/<game_id>")
def start_game(game_id):
# ...
@app.route("/end_game/<game_id>")
def end_game(game_id):
# ...
在我的表单中,如何使游戏id
对应于游戏id
中的游戏id
?
目前,当我提交开始和结束游戏时,我收到一个文件未找到错误,因为它只是附加了文字
我是网络开发新手。这应该是微不足道的,但我不知道该搜索什么。对于这样一个简单的问题,我先表示歉意。
我不能评论,但我想更正davidism的代码。我相信,您需要在表单元素中使用一个与服务器python代码中的函数对应的值来执行操作。轻微的,但重要的纠正。所以它是这样的:
在您的服务器中。py:
@app.route('/manage_game', methods=['POST'])
def manage_game():
start = request.form['action'] == 'Start'
game_id = request.form['game_id']
if start:
start_game(game_id)
else:
stop_game(game_id)
return redirect(url_for('index'))
超文本标记语言:
<form method="POST" action=/manage_game>
<input type="text" name="game_id"/>
<input type="submit" name="action" value="Start"/>
<input type="submit" name="action" value="Stop"/>
</form>
您正在尝试根据用户输入生成url,但当Jinja在服务器端呈现模板时,用户输入不可用,它仅在客户端可用。因此,如果您想使用游戏id作为URL参数发布到URL,则必须使用JavaScript在客户端构建该URL。
对于你想做的事情,这真的没有必要。您可以使用request.form['name']
获取已命名输入的提交值。按钮就像任何其他输入一样,所以你可以命名它们来找出采取了什么行动。
@app.route('/manage_game', methods=['POST'])
def manage_game():
start = request.form['action'] == 'Start'
game_id = request.form['game_id']
if start:
start_game(game_id)
else:
stop_game(game_id)
return redirect(url_for('index'))
<form method="POST" action="{{ url_for('manage_game') }}">
<input type="text" name="game_id"/>
<input type="submit" name="action" value="Start"/>
<input type="submit" name="action" value="Stop"/>
</form>
甚至比你需要的还要详细。如果你知道游戏是否已经在进行中,只需切换当前状态,而不是选择动作。开始一个已经开始的游戏是没有意义的,只是停止它。
问题内容: 我正在尝试创建一个基本菜单,以检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。 例。 我输入 应该相等 问题答案: 这似乎是您要找的东西: 但是,这可能不是最好的策略,因为错字或恶意用户很容易使您的代码崩溃,系统过载或执行他们喜欢的任何其他讨厌的事情。对于这种特殊情况,更好的方法可能是
如何使用例如
我有两个表,一个是user,它是父表,另一个是posts(child)表,它的coulmns是 我已经说明了
我想访问嵌入形式的过程变量,但我无法这样做。我在https://docs.camunda.org/manual/7.8/reference/embedded-forms/javascript/examples/浏览了留档以及https://github.com/camunda/camunda-bpm-examples/tree/master/usertask/task-form-embedded-
我正在构建一个数据产品(一个NLP聊天应用程序),我正在学习它,以便用户可以有更好的UI与我的产品交互。 我在Flask中写下了以下代码,以获取用户输入并将其存储在变量中。 主要的派克 初始化。html 我已经处理了表单数据,并将其存储在变量中。我想把这个变量传递给另一个Python脚本,其中包含我的训练模型的代码。 doc2vec_main。派克 我的问题是我找不到连接doc2vec_main的
我有一个带有多个输入标记的简单HTML表单。在页面加载时,我向表单提供数据,以从数据库回显字段的当前值,然后用户可以修改这些值并再次提交以执行更新。 代码运行良好,只是它不显示完整的变量。 例如,如果$namember='Saurabh Pradhan'than'而不是将'Saurabh Pradhan'显示为输入标记的值,则只显示'Saurabh'。 如果我从数据中删除空格并将其设置为“Saur