运行 Django 和 GRPC 相同的应用

Run Django and GRPC same application

我正在处理 Django 休息框架项目,我也需要使用 gRPC。但我不知道如何同时管理 运行 HTTP 服务器和 gRPC 服务器。与 .NET 一样,它可以选择同时监听 HTTP1 和 HTTP2。

当我使用命令时

python manage.py runserver

然后 gRPC 不起作用

当我使用

python manage.py grpcserver

然后休息 API 不起作用

这个问题有什么解决办法吗?谢谢

我使用了软件包:djangorestframeworkdjango-grpc

解决了

我刚刚创建了一个新的自定义管理命令并且运行两者都

from django.core.management.base import BaseCommand
from subprocess import Popen
from sys import stdout, stdin, stderr
import time
import os
import signal


class Command(BaseCommand):
    help = 'Run all commands'
    commands = [
        'python manage.py grpcserver',
        'python manage.py runserver'
    ]

    def handle(self, *args, **options):
        proc_list = []

        for command in self.commands:
            print("$ " + command)
            proc = Popen(command, shell=True, stdin=stdin,
                         stdout=stdout, stderr=stderr)
            proc_list.append(proc)

        try:
            while True:
                time.sleep(10)
        except KeyboardInterrupt:
            for proc in proc_list:
                os.kill(proc.pid, signal.SIGKILL)