Renpy和请求

Eri*_*ong 5 python python-requests renpy

问题:我如何让游戏运行 requests.post 来发布 url?

基本上,我目前正在做一个项目,可以将游戏过程中的选择发送到我创建的网站,以便我可以跟踪玩家所做的选择。该网站已完成,我已使用单独的 python 程序对其进行了测试,使用以下两行代码,它运行良好:

import requests
con = requests.post("http://localhost:8080/update?/checkingChL")
Run Code Online (Sandbox Code Playgroud)

这将触发我网站的数据库更改,该数据库将清楚地显示在网站上,因此如果我使用单独的 python 文件,代码运行得非常好。但似乎 Ren'Py 并没有像我希望的那样接受它......

我做过的事情: 尝试 1:下载 Python 模块,如下所示 - https://www.renpy.org/doc/html/python.htm

安装请求后,我从 Ren'Py 启动了该项目并打开了开发者控制台,然后输入:

import requests
Run Code Online (Sandbox Code Playgroud)

但我得到的回应是:

ImportError: No module named cgi
Run Code Online (Sandbox Code Playgroud)

所以那是不行的。如前所述,我对 Python 还是个新手,所以我做了一些 Google 搜索并尝试了下一次尝试……

尝试 2:安装 renpy-requests,如下所示 - https://github.com/renpytom/renpy-requests

在尝试 1 之前使用新版本的游戏,我已经下载了文件并完全按照说明进行操作。这次我比上次更进一步:

import requests
con = requests.post("http://localhost:8080/update?/checkingChL")
LookUpError: unknown encoding:idna
Run Code Online (Sandbox Code Playgroud)

同样,如您所见,错误仍在继续。

我试图将 cgi 和编码导入游戏,但也没有运气... :(

我忽略了错误消息,无论如何都将代码粘贴到游戏中,并且在合适的时机触发......结果发现网站根本没有发生任何事情......

显然,我的游戏中缺少一些东西,但我现在没有想法......

Sai*_*ros 1

我不确定 Ren'Py 是否完全支持 Requests 模块。如果您不发送敏感信息,则可以使用它。

以下是使用 Re'nPy 创建者 Tom 创建的请求的 github 示例的链接。 https://github.com/renpytom/renpy-requests

我在游戏中使用 urllib 和 urlib2。

import urllib
import urllib2

url = "http://........."
opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1))
data = urllib.urlencode({'name' : playerName,'score' : playerScore})
userList = str(opener.open(url, data=data).read())

Run Code Online (Sandbox Code Playgroud)

编辑 11/21/2021:请求模块现在默认包含在 Ren'Py 中。