如何在python中为变量分配javascript函数返回值?
html代码:如何在python中为变量分配javascript函数返回值?,javascript,jquery,python,html,django,Javascript,Jquery,Python,Html,Django,html代码: <h1>Uploading a photo.</h1> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script> <script type="text/javascript"> var p; var canvas = document.createElement("
<h1>Uploading a photo.</h1>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
<script type="text/javascript">
var p;
var canvas = document.createElement("canvas");
var img1=document.createElement("img");
function converttobyte()
{
p=document.getElementById("file").value;
img1.setAttribute('src', p);
canvas.width = img1.width;
canvas.height = img1.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img1, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert("from getbase64 function"+dataURL );
return dataURL;
}
</script>
<form action="UploadFile" method="post" accept-charset="utf-8" name="UploadFileForm"
enctype="multipart/form-data">
<input type="file" id="file" name=""><br>
<input type="submit" value="Upload" onclick="converttobyte">
</form>
ifrequest.method==“post”
之后应该添加什么语句,以便在python脚本中接受函数返回值
请帮帮我。提前感谢解决问题的一种方法是:
<input type="hidden" id="hide" name="URL" value="">
希望这能解决问题。您的代码有一些问题 您不应该调用类似于
onclick=“converttobyte()”
的方法吗
在converttobyte()
方法中,当表单提交时,您只需返回dataURL
,但该值如何传递给POST请求
您需要在POST请求中传递该值。您可以使用隐藏字段来实现这一点。试着这样做:
Javascript:
<h1>Uploading a photo.</h1>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
<script type="text/javascript">
var p;
var canvas = document.createElement("canvas");
var img1=document.createElement("img");
function converttobyte()
{
p=document.getElementById("file").value;
img1.setAttribute('src', p);
canvas.width = img1.width;
canvas.height = img1.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img1, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert("from getbase64 function"+dataURL );
/**Set the value of the raw_bytes input field*/
var form = document.getElementById('uploadForm');
form.raw_bytes.value = dataURL;
}
</script>
<form id="uploadForm" action="UploadFile" method="post" accept-charset="utf-8" name="UploadFileForm"
enctype="multipart/form-data">
<input type="file" id="file" name=""><br>
<input type="hidden" name="raw_bytes" id="raw_bytes" />
<input type="submit" value="Upload" onclick="converttobyte()">
</form>
def UploadFile(request):
if request.method == 'POST':
raw_bytes = request.POST['raw_bytes'].decode("base64")
在窗体内部创建一个隐藏变量
<form action="UploadFile" method="post" accept-charset="utf-8" name="UploadFileForm"
enctype="multipart/form-data">
<input type="hidden" id="url" name="url" value="">
<input type="file" id="file" name=""><br>
<input type="submit" value="Upload" onclick="converttobyte">
</form>
function convert_to_byte()
{
p=document.getElementById("file").value;
img1.setAttribute('src', p);
canvas.width = img1.width;
canvas.height = img1.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img1, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert("from getbase64 function"+dataURL );
document.getElementById("url").value = dataURL;
}
然后在提交之后,您可以使用下面的代码来获取python中的值
if request.method == 'POST':
url_value = request.POST['url']
感谢您的回复,我已经尝试过了,但是一旦我提交表单,我就得到了异常类型:MultiValueDictKeyError异常值:“'URL'”请尝试在python代码中使用request.POST.get('URL',False)。这是绕过默认值的一种方法,如果没有提供,Hi mayankTUM我也尝试过这种方法,但首先图像文件没有在默认存储中转换为dataurl,它显示的是一个空的文本文件……请帮助我。非常感谢您的回复,兄弟,但我得到了异常类型:MultiValueDictKeyError异常值:“'raw_bytes'”request.POST的输出是什么?图像未转换为警报框中的dataurl,空字符串将附加到“from getbase64 function”中。。
function convert_to_byte()
{
p=document.getElementById("file").value;
img1.setAttribute('src', p);
canvas.width = img1.width;
canvas.height = img1.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img1, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert("from getbase64 function"+dataURL );
document.getElementById("url").value = dataURL;
}
if request.method == 'POST':
url_value = request.POST['url']