I first applied the Flask application using Apache on AWS. Downloading HTML pages, however, things like loading files, writing files, and reading files do not seem to work. In the example below, I call this special function, which records the data received from the URL. But here I turned it off, and the code just needs to read a file that already exists. So export_po_list.xml already exists and I checked this from the terminal. The same code works very well locally on my PC.
Checking / var / log / apache2 / error.log shows
IOError: [Errno 13] Permission denied: 'export_po_list.xml'
I made chmod 777 -R for the entire folder with this flash application. This still does not work.
def po_data(a,b,c): array0 = [] array1 = [] array2 = [] array3 = [] array4 = [] array5 = [] array6 = [] array7 = [] array8 = [] array9 = [] array10 = [] array11 = [] array12 = [] array13 = [] array14 = [] array15 = [] array16 = [] array17 = [] array18 = [] array19 = [] array20 = [] url_begin = "https://34.239.8.24:44300/sap/opu/odata/sap/ZRECEASY_ALL_OPEN_PO_SRV/ZRECEASY_ALL_OPEN_POSet?$filter=ImBstyp eq '" url_mid_1 = "' and ImBsart eq '" url_mid_2 = "' and ImErnam eq '" url_end = "'" final_url = url_begin + a + url_mid_1 + b + url_mid_2 + c + url_end print "\n\n" print final_url print "\n\n" auth_get_po_data ='S4H_FIN','Welcome1' headers_get_po_data = {"Content-type":'application/json;charset=utf-8'} final_url = "https://34.239.8.24:44300/sap/opu/odata/sap/ZRECEASY_ALL_OPEN_PO_SRV/ZRECEASY_ALL_OPEN_POSet?$filter=ImBstyp eq 'F' and ImBsart eq 'NB' and ImErnam eq 'S4H_MM'" #Post data back # final_url = "https://34.239.8.24:44300/sap/opu/odata/sap/ZRECEASY_ALL_OPEN_PO_SRV/ZRECEASY_ALL_OPEN_POSet? # r_get_po_data = requests.get(final_url,headers=headers_get_po_data,auth=auth_get_po_data, verify=False) # print r_get_po_data.text print os.getcwd() # Write temporary XML file to work on parsing # file = open('export_po_list.xml', 'w') # file.write(r_get_po_data.text) # file.close() # Read XML file print os.getcwd() tree = ET.parse('export_po_list.xml') root = tree.getroot() #Extract relevant info for child in root: for child2 in child: for child3 in child2: counter = 1 for child4 in child3: # 5 24 if (counter == 5): array0.append(str(child4.text)) elif (counter == 6): array1.append(str(child4.text)) elif (counter == 7): array2.append(str(child4.text)) elif (counter == 8): array3.append(str(child4.text)) elif (counter == 9): array4.append(str(child4.text)) elif (counter == 10): array5.append(str(child4.text)) elif (counter == 11): array6.append(str(child4.text)) elif (counter == 12): array7.append(str(child4.text)) elif (counter == 13): array8.append(str(child4.text)) elif (counter == 14): array9.append(str(child4.text)) elif (counter == 15): array10.append(str(child4.text)) elif (counter == 16): array11.append(str(child4.text)) elif (counter == 17): array12.append(str(child4.text)) elif (counter == 18): array13.append(str(child4.text)) elif (counter == 19): array14.append(str(child4.text)) elif (counter == 20): array15.append(str(child4.text)) elif (counter == 21): array16.append(str(child4.text)) elif (counter == 22): array17.append(str(child4.text)) elif (counter == 23): array18.append(str(child4.text)) elif (counter == 24): array19.append(str(child4.text)) elif (counter == 25): array20.append(str(child4.text)) counter = counter + 1 return array0, array1, array2, array3, array4, array5, array6, array7, array8, array9, array10, array11, array12, array13, array14, array15, array16, array17, array18, array19, array20