python - Django Steam API 的“列表索引超出范围”
问题描述
我正在 Django 中开发一个应用程序,它可以让您在输入 Steam 用户 ID 时查看有关 Steam 用户的信息。
我正在使用在此链接中找到的 Django Steam API:https ://pypi.org/project/django-steam-api/ ,不幸的是,它没有提供有关如何正确设置它的一些文档/足够的帮助。
我从那里按照步骤操作。安装了 pip 包,添加django-steam-api
到INSTALLED_APPS
元组中,STEAM_API_KEY
从他们的官方站点(在“localhost”上,因为我的 web 应用程序目前没有托管)生成一个,还通过应用当前迁移更新了数据库。
我有一个视图backend/views.py
,(backend
是我使用命令创建的应用程序名称django-admin startapp backend
),它从包含steam_user_id
使用该POST
方法调用的文本框的表单中获取数据。
我正在尝试从 Steam 获取有关具有 id 的用户的所有信息steam_user_id
,但是当我在视图内部调用该方法时:
Player.objects.steam_create(steam_user_id)
(...) 我在我的页面上收到以下错误:
{{ /link_to_my_view/ 处的 IndexError - 在此处手动替换它以避免并发症}} 列表索引超出范围请求方法:POST 请求 URL:http: //127.0.0.1 :8000/profile/edit/Django 版本:3.2.7 异常类型:IndexError 异常值:列表索引超出范围异常位置:C:\Users\matea\AppData\Local\Programs\Python\Python39\lib\site-packages\django_steam_api\managers.py,第 21 行,在 steam_create Python 可执行文件:C:\Users\matea\AppData\Local\Programs\Python\Python39\python.exe Python 版本:3.9.7 Python 路径:['E:\git\gameprofile', 'C: \Users\matea\AppData\Local\Programs\Python\Python39\python39.zip', 'C:\Users\matea\AppData\Local\Programs\Python\Python39\DLLs', 'C:\Users\matea\AppData \Local\Programs\Python\Python39\lib', 'C:\Users\matea\AppData\Local\Programs\Python\Python39', 'C:\Users\matea\AppData\Local\Programs\Python\Python39\lib \site-packages'] 服务器时间:2021 年 10 月 30 日星期六 22:09:37 +0000
Traceback 指向包含Player.objects.steam_create(list(steam_user_id))
.
我做错了什么?我也尝试转换steam_user_id
为列表 ( list(steam_user_id)
),但它仍然不起作用。
有什么意见或解决办法吗?帮助将不胜感激。谢谢你。
解决方案
我建议你不要使用这个包,如果你是唯一的用户(可能是你),可能会出现问题,如果你绝对需要使用这个包,那么在 github 中打开一个问题可能会更合适如果你检查源代码你会看到这个 Django Steam API 有什么问题。给你错误的方法在这里https://github.com/voblivion/django-steam-api/blob/master/django_steam_api/managers.py
在我看来,这确实是不必要的包 STEAM_API_KEY 变量可能是问题所在
def steam_query(self, url, params={}):
params['key'] = settings.STEAM_API_KEY
raw_data = requests.get(url, params)
data = raw_data.json()
return data['response']
当您尝试通过 shell 运行此代码时,它是否有效?顺便说一句,只需阅读所有的包文件,它实际上真的很小,最好是在你的项目中实现和修复问题。
推荐阅读
- python - 删除旧的 python 文件后在 windows 中运行 python 文件
- c# - PDF 表格在部分填写后不再可编辑
- sqlite - 使用jooq上下文将内存sqlite转储到字节[]
- python - Python“命令不同步”错误将批量插入MySQL
- performance - 关于实现高性能汇编指令生成器的建议
- protractor - 如何在量角器中进行错误处理,如未找到元素、元素不可处理、WebDriverError:发生未知错误
- css - Bootstrap 3 输入组插件和输入边框
- ios - 快速禁用xib的屏幕旋转
- php - 达到 Youtube Api 上的许可内容价值 - PHP
- ansible - 如何在ansible上用OR很好地分割多行长条件?