Javascript 无法将views.py中的输出发送到django中的模板
我的应用程序所做的是使用google vision ocr捕获实时图像并提取一些值。 我从外部python脚本获取数据,并希望在html文本字段中显示输出 这是我的views.py模板Javascript 无法将views.py中的输出发送到django中的模板,javascript,html,django,django-views,render,Javascript,Html,Django,Django Views,Render,我的应用程序所做的是使用google vision ocr捕获实时图像并提取一些值。 我从外部python脚本获取数据,并希望在html文本字段中显示输出 这是我的views.py模板 from django.shortcuts import render, render_to_response from django.http import HttpResponse from django.http import JsonResponse from .models import Tempera
from django.shortcuts import render, render_to_response
from django.http import HttpResponse
from django.http import JsonResponse
from .models import TemperatureRecordsF, TemperatureRecordC , BloodPressureRecord , SPO2Levels
import sys
import base64
from PIL import Image
from subprocess import run, PIPE
def button(request, *args, **kwargs):
return render(request,'capturr1.html',)
def external(request, *args, **kwargs):
request_getdata = request.POST.get('img64',None)
selected_radio = request.POST.get('radio_seleect',None)
print(selected_radio)
# print(request_getdata)
headed, encoded = request_getdata.split(",",1)
data = base64.b64decode(encoded)
with open("D:/dev/django/src/OCR/media/image.png", "wb") as f:
f.write(data)
path = 'D:/dev/django/src/OCR/media/image.png'
out = run([sys.executable,'D://dev//django//src//OCR//detect_text.py',path],shell=False,stdout=PIPE)
print(out.stdout)
context = {
'output' : out.stdout
}
return render(request,'capturr1.html',context)
这是我的模板capturr1.html
<form class="contentarea" action="/external" method="POST" id="capture" name="capture">
{% csrf_token %}
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1">
<label class="form-check-label" for="inlineRadio1">Temperature °F</label>
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
<label class="form-check-label" for="inlineRadio2">Temperature °C</label>
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3">
<label class="form-check-label" for="inlineRadio3">Blood Pressure</label>
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio4" value="option4">
<label class="form-check-label" for="inlineRadio4">Oxygen Saturation Levels</label><br>
<video id="video">Video stream not available.</video><br>
<button id="startbutton">Take photo</button>
<input type="submit" value="Save" class="save" name="savebutton"/>
<input type="text" />{{ output }}
<canvas id="canvas" style="display: none;"><br>
</canvas>
<div class="output">
<img id="photo" alt="The screen capture will appear in this box."><br/>
</div>
</form>
假设您的URL模式如下所示:
path('external/',views.external,name='ext_data')
if request.is_ajax():
如果out不是None:
返回JsonResponse({'output':out.stdout})
在js方面
$.ajax({
... ...
url:“/external/”,
... ...
}).done(函数(msg){
控制台日志(msg)
);
检查它是否工作。错误是什么?没有得到任何错误,html模板中没有显示上下文
print(out.stdout)
这是在打印一些值吗?是的。它将打印在控制台上。您是否尝试在浏览器和python中使用调试模式来查看各自的工作情况?它工作正常。谢谢
$(document).ready(function() {
$("#capture").submit(function(event) {
var radio_select = document.capture.inlineRadioOptions.value;
console.log(radio_select)
event.preventDefault();
$.ajax({
type: "POST",
url: 'external',
data: {
'img64': photo.src,
'radio_seleect': radio_select
}
}).done(function() {
console.log('sent');
});
});
});