Djangoでwebhookがしたい。
解決済
回答 10
2022/07/18 10:05
質問内容

実現したいこと

他のプロジェクト(今回はFlask)からPOSTリクエストを送り、Djangoプロジェクトでこれを受け取り、結果を画面表示したい。

発生している問題

Django側でPOSTリクエストの受信はできるが、画面表示(HTTPレスポンス)ができない

ソースコード

【flaskによる送信側コード】

import requests
import json

webhook_url = "http://127.0.0.1:8000/recieve_data/"

data = {
    "name": "kazutaka",
}

r= requests.post(webhook_url, data = json.dumps(data), headers={
    'Content-Type': 'application/json'
})

【djangoによる受信側コード】

アプリのurls.py

from django.urls import path
from . import views

urlpatterns=[
    path("recieve_data/", views.RecieveDataView.as_view(), name="recieve_data")
]

アプリのviews.py

from django.shortcuts import render, redirect
from django.views import View
import requests
import json
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator

@method_decorator(csrf_exempt, name='dispatch')
class RecieveDataView(View):
    template_name = "app/recieve.html"
    
    def get(self, request,*args, **kwargs):
        context={
            "title": "webhookRecieveTest",
            "message": "ここに名前を表示したい"
        }
    
        return render(request, self.template_name, context)    
    
    def post(self, request,*args, **kwargs):
        data= json.loads(request.body)
        name= data["name"]
        print(name)  # <-------------- これは問題なくできた。

        context={
            "title": "webhookRecieveTest",
            "message": name
        }
    
        return render(request, self.template_name, context)    #<----ここが駄目みたい

アプリのrecieve.html

<h2>{{message}}</h2>

自分で試したこと

Flaskどうしでも送受信してみましたが、やはりHttp表示ができませんでした。 webhookは概念的なテーマであり、その実はPOST送受信なのかと思っていますが、 なにか足りないという感じはしています。 コメントしていただきましたが、「Djangoのurlをwebhook」に設定してという部分がそれなのだと思いました。

なにがおかしいのかお教えいただけませんでしょうか。 よろしくお願いいたします。

補足情報

回答 10
ベストアンサーを選択すると、解決済みとなります。
nodata
まだ回答がありません
回答
nodata
回答するにはログインが必要です