Python – Django communicates with C++

Django communicates with C++… here is a solution to the problem.

Django communicates with C++

I need to send some data from a C++ program in my client machine to the Django server in order to process the data using Python and send it back to another client computer. If it were something like ajax for JavaScript using JSON it would be easy, but the problem is, I researched a lot and found a C++ library called Wt that seems to have what I need, but I don’t know how I’ll do to be able to send data to Django View. I can’t find any useful code for this issue, and I would appreciate it if someone could tell me how to do this.

Solution

wt is the server library. You need a customer. Your C++ code will act as a browser and make HTTP requests to your Django server. There are many C++ libraries that allow you to do this. A very common one is libcurl their example shows that using libcurl is easy to POST :

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

/* In windows, this will init the winsock stuff */ 
  curl_global_init(CURL_GLOBAL_ALL);

/* get a curl handle */ 
  curl = curl_easy_init();
  if(curl) {
    /* First set the URL that is about to receive our POST. This URL can
       just as well be a https:// URL if that is what should receive the
       data. */ 
    curl_easy_setopt(curl, CURLOPT_URL, "http://my.django.server/some/url");
    /* Now specify the POST data */ 
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl");

/* Perform the request, res will get the return code */ 
    res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

/* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  curl_global_cleanup();
  return 0;
}

Related Problems and Solutions