首先,我是编程新手,对 python 有相对基本的了解,对 html 的了解一般。
利用我在 Python 中的知识,我正在尝试创建一个基本的策略游戏,有点像帝国时代或命令与征服之类的游戏,基于收集资源并使用它来构建东西,除了使用简单的文本或单击按钮类型的界面。我可以做一个文本界面,但有点无聊,我想用一些图片。我有一个关于 tkinter 的 1 小时讲座,但我尝试并未能从中远程“使用”任何东西。我能做的就是制作看起来不错的 html 页面,这将很好地满足我的目的。
我想知道是否有一种简单的方法可以通过 html 页面执行 python 函数并调用/显示 python 变量? python 函数执行所有逻辑并呈现代表当前资源水平、生产、存储能力、建筑物水平等的变量。在最基本的水平上,我需要的是一种显示这些变量的方式,并具有执行功能的按钮也就是说,升级一座建筑,它会重新计算产量等等,并返回一组新的值(value)。
举个简单的例子:
<p> Wheat production: *python integer representing production*</p>
<button type="button" onclick="*execute python variable*">Upgrade Wheat</button>
我想,还需要以某种方式更新在 html 页面上更改的变量。所以按钮执行了一个函数来升级小麦产量,python 现在有一个小麦产量变量的新值,这需要在页面上更新,无论是自动的,还是通过其他一些方法。我想最简单的方法是按下按钮也可以重新加载页面,但这似乎有点笨拙。
有人知道这样做的简单方法吗?或者也许是一个可以帮助我的 python 库?
最佳答案
是的,有一种方法可以做到这一点。
有两种方法可以做到这一点。一种是在服务器上完成所有工作,另一种方法是使用 Javascript。
第一种方法是:编写一个生成 HTML 的 python 脚本。如果你使用 Django,你会得到很多工作,但你也会得到很多你不想要的东西。 Django 确实有一个内置的模板语言。 Django 超出了这个答案的范围。您将完全按照上述描述进行操作;模板的示例可能是 <p> Wheat production: {{wheat_production}}</p>
- 你的 python 代码将设置一个字典 mydict={"wheat_production":10}
然后您将模板文件的名称和字典传递给一个函数,该函数将吐出您的页面。如果您还没有学习 HTML 表单,您还必须了解它。
另一种方法是使用 Ajax - Javascript,当您的页面显示时(可能还有单击按钮时,或定期)将发送/接收一些数据以允许您更新页面。我建议研究 JQuery 来为您做一些提升。这意味着您可以更新页面的某些部分而无需重新加载整个页面。您仍然需要在服务器上编写一些代码来与数据库对话,并将输出(通常为 JSON)发送回客户端。
写这类东西时,请确保您的所有安全都在服务器端,不要相信用户告诉您的任何事情。例如,如果您将金币数量存储在表单的一个字段中,那么某人需要大约 10 秒的时间才能给自己想要多少金币。类似地,如果一个玩家可以以 20 金币的价格出售一颗钻石,请确保他们在给他们金币之前拥有钻石 - 您不希望最终玩家拥有 1,000,000 金币和负 1000 颗钻石。 Javascript 是 100% 不安全的,Javascript 能做的,玩家也能做。
关于python - 执行python函数并从html中读取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051361/