我想要一个访问Django DB的不和谐机器人。一个明显的解决方案是有 2 个单独的脚本。我想知道是否有办法使 Django 的 discord-bot 成为应用程序或其他东西的一部分。
您可以在单独的线程中运行不和谐机器人,也可以相互设置属性。同样,如果你愿意,你也可以在不同的线程中运行 django。
import threading
django_app = DjangoApp() # However this works, I'm not familiar with Django
bot = discord.Bot() # commands.Bot() for the discontinued discord.py
bot.django = django_app
django_app.discord_bot = bot
thread = threading.Thread(target=lambda: bot.run(BOT_TOKEN))
thread.start()```
如果您使用的是discord.py
则可以创建如下所示的管理命令:
from django.conf import settings
from django.core.management.base import BaseCommand
description = """
My bot from an SO answer
"""
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(command_prefix="?", description=description, intents=intents)
class Command(BaseCommand):
help = "Runs the discord bot"
def handle(self, *args, **options):
bot.run(settings.DISCORD_BOT_TOKEN)
我还创建了一个库,使这更容易 https://pypi.org/project/django-discord-py/但这肯定不是必需的。