Как Django обрабатывает пост-запрос, отправленный из React? Я извлек данные из POST-запроса, но как показать их в веб-браузере?
Я абсолютно новичок в области frontend и backend. Я отправил запрос из React в Django используя "POST" и я извлек данные из запроса, я могу распечатать их в терминале, но как показать результат в веб-браузере из Django (т.е. 8000/result/), кажется, что нужно использовать метод "GET", но он не работает, потому что мои данные извлекаются из POST запроса. В общем, я ввел текст и отправил его на localhost:8000/result, поэтому я хочу показать результат на этом url или перенаправить на другой и отправить его обратно в React.
Я не знаю, как этого добиться, я использовал довольно тупой метод я сохраняю данные запроса в tempory json и читаю json в другой функции для рендеринга браузера через "GET". Я пытался сделать рендеринг или перенаправление на некоторые url страницы непосредственно после обработки "POST" запроса, но это, очевидно, не удается.
views.py
@api_view(["GET","POST"])
#class SubmitTextView(View):
def post(request):
if request.method =="POST":
#print(True)
text = request.body
#print(type(text))
result = json.loads(text)["text"]
json_data = json.dumps({"text":result})
#return HttpResponse(json_data, content_type='application/json')
#return JsonResponse({"text":result})
#context = {'result':result,'headline':'Result Searched from Wikipedia'}
#return render(request, 'my_template.html', context)
with open("sample.json", "w") as outfile:
outfile.write(json_data)
return JsonResponse({"status":"success"})
def upload(request):
with open('sample.json', 'r') as openfile:
# Reading from json file
json_object = json.load(openfile)
text = json_object["text"]
#print(text)
context = {'result':text,'headline':'Result Searched from Wikipedia'}
return render(request, 'my_template.html', context)
url.py
from django.contrib import admin
from django.urls import path,include
from app.views import *
urlpatterns = [
path('admin/', admin.site.urls),
path('new/',post,name = 'new'),
path('response/', upload, name='response'),
]
html
<h1>{{ headline }}</h1>
<div
style="border: 1px solid black; overflow: auto; max-height: 200px;">
<p>{{result}}</p>
</div>
Пожалуйста, помогите мне с этим... Спасибо!!!