Discord 机器人可以存储信息的地方在哪里 [discord.py]
Where is the place that discord bots can store information [discord.py]
我不是 python 的新手,而是 discord.py 的新手。我试图通过 discord.py 手册,但没有找到我可以在 discord 机器人上存储一些临时变量的地方。
discord.py 手册:http://discordpy.readthedocs.io/en/latest/api.html
比如在PHPSESSION中,我们可以在SESSION()上存储信息。 discord.py有没有同类的东西?
例如,如果我们有用户 "A" 和用户 "B"。 "A" 将存储为 "A_Object" 的对象,例如消息等。与 "B_Object" 类似,但与 "A_Object" 不同。 discord.py中有这样的函数吗?
非常感谢您的帮助!
您可以使用sqlite数据库。在你的 def 里面写:
# define database
import sqlite3
conn = sqlite3.connect("my_database.db")
cursor = conn.cursor()
# get stored object from database
sql = "SELECT * FROM my_table WHERE field_1=?"
cursor.execute(sql, [(value_1)])
data = cursor.fetchall()
# if object does not exist, create it
if len(data) == 0:
sql = "INSERT INTO my_table VALUES (?, ?)"
cursor.execute(sql, [(value_1), (value_2)])
# if stored object exist and we need update it
elif ...:
sql = "UPDATE my_table SET field_2 = ? WHERE field_1 = ?"
cursor.execute(sql, [(value_2), (value_1)])
else:
# get data from first object
value_of_field_1 = data[0][0]
# get data from third object
value_of_field_2 = data[2][1]
# close database connection
conn.commit()
conn.close()
my_database.db - 是一个 sqlite 数据库文件,应该与 bot 的 .py 文件存储在同一个文件夹中。
我不是 python 的新手,而是 discord.py 的新手。我试图通过 discord.py 手册,但没有找到我可以在 discord 机器人上存储一些临时变量的地方。
discord.py 手册:http://discordpy.readthedocs.io/en/latest/api.html
比如在PHPSESSION中,我们可以在SESSION()上存储信息。 discord.py有没有同类的东西?
例如,如果我们有用户 "A" 和用户 "B"。 "A" 将存储为 "A_Object" 的对象,例如消息等。与 "B_Object" 类似,但与 "A_Object" 不同。 discord.py中有这样的函数吗?
非常感谢您的帮助!
您可以使用sqlite数据库。在你的 def 里面写:
# define database
import sqlite3
conn = sqlite3.connect("my_database.db")
cursor = conn.cursor()
# get stored object from database
sql = "SELECT * FROM my_table WHERE field_1=?"
cursor.execute(sql, [(value_1)])
data = cursor.fetchall()
# if object does not exist, create it
if len(data) == 0:
sql = "INSERT INTO my_table VALUES (?, ?)"
cursor.execute(sql, [(value_1), (value_2)])
# if stored object exist and we need update it
elif ...:
sql = "UPDATE my_table SET field_2 = ? WHERE field_1 = ?"
cursor.execute(sql, [(value_2), (value_1)])
else:
# get data from first object
value_of_field_1 = data[0][0]
# get data from third object
value_of_field_2 = data[2][1]
# close database connection
conn.commit()
conn.close()
my_database.db - 是一个 sqlite 数据库文件,应该与 bot 的 .py 文件存储在同一个文件夹中。