python - 如何在 Flask 中选择按钮后正确触发 random.choice()?
问题描述
我是一名初学者 python 学生,我试图建立一个只有一个按钮的网站,每次单击它时都会弹出一个新窗口,其中包含一个随机的 Flash 游戏。
现在,我的按钮正在工作,但它总是打开同一个 Flash 游戏,只有当我刷新页面并再次单击时,它才会加载一个新游戏。
有人可以向我解释发生了什么问题,我该如何解决?:)
在此之前,我抓取了一篇文章,其中包含大约 150 个指向 Flash 游戏的链接,这些游戏现在位于 .txt 文件中,例如:
http://www.tapeonline.com/snowball/
http://www.gamesforwork.com/games/play-4626-Necrathalon-Flash_Game
http://www.adobe.com/macromedia/holiday2004/
http://www.kongregate.com/games/arawkins/dolphin-olympics-2
这是我的代码:
烧瓶
from flask import Flask, render_template, request, redirect
import random
app = Flask(__name__)
@app.route("/" , methods=['POST','GET'])
def home():
if request.method == 'POST':
return redirect("/")
else:
a = open('gamelinks.txt','r')
b = a.read().split()
a.close()
return render_template('index.html', game=random.choice(b))
if __name__ == '__main__':
app.run(debug=True)
html:
{% extends "base.html" %}
{%block head %}
{% endblock %}
<title>FLASHER</title>
{% block body %}
<form action = '{{ game }}' method='POST' target="_blank">
<input type='submit', name='submit', id='submit', value='Play Game'>
</form>
{% endblock %}
解决方案
问题是它只随机选择一次。当您加载页面时,随机值被分配给游戏变量,并且在您刷新页面之前一直保持这种状态。提交表单后,您可能希望使用 JS 刷新页面: https ://www.w3schools.com/jsref/event_onclick.asp
推荐阅读
- sap - 如何在 SAP ASE Sybase 16 中从具有外键的表中删除行
- python - 检查按下的键是否是 PyQt 中的字母或空格
- r - 无法在 Rmarkdown for word 中使用 ggplot() 创建表
- python-3.x - 将跨越多个 UTM 区域的一组纬度/经度点投影到单个网格中
- linux - 如何在 SSH 之上使用 OpenGL?
- angular - 无法读取角度未定义的属性“_syncPendingControls”
- javascript - 如何为不存在并基于元素设置自动隐藏?
- unit-testing - Spring Boot 应用程序中存储库的单元测试用例
- python-3.x - 如何在 Python 3 中导入线程包?
- python - 如何使用 GitPython 在提交中获取文件的源代码?