В настоящее время я использую сервер разработки Flasks вместо отдельного, потому что мне не нужны дополнительные объемы. Мой сервер не будет обрабатывать много запросов одновременно, поэтому я чувствую, что сервер разработки достаточно хорош.
Что я пытаюсь сделать
У меня есть скрипт на python, который я пытаюсь запустить нажатием кнопки на веб-странице. Эта веб-страница запускается на веб-сервере Apache 2 в Ubuntu.
Что я сделал
Я установил Flask и попытался опубликовать свой скрипт на python, но всегда получаю эту ошибку:
* Serving Flask app "ResetPOE" (lazy loading)
* Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: on
Он всегда возвращается к моему блоку ошибок в моем запросе Ajax и никогда к моему блоку успеха. Я не получаю никакого возврата JSON из моего скрипта Python. Я просто хочу знать, был ли запущен мой скрипт, мне не обязательно выводить сам скрипт.
P.S. мой Python может быть неправильным, но я даже не получил его, чтобы распознать его, так что пока это на заднем плане. Я просто пытаюсь получить успешный почтовый запрос.
ajax.js
function ajaxCall(input) {
var data = {"param" : input};
$.ajax({
url: "/cgi-bin/reset.py/request",
type: "POST",
contentType: "application/json",
data: JSON.stringify(data),
dataType: 'json',
success: function(response){
console.log("success");
console.log(response);
},
error: function(xhr, status, error) {
console.log("error");
var err = xhr.responseText;
console.log(err);
}
});
}
reset.py
#!/usr/bin/python3
print("Content-type: text/html")
print ("")
from flask import Flask, request, jsonify
import json
app = Flask(__name__)
@app.route('/')
def sendOK(environ, start_response):
status = '200 OK'
output = "Hello World!"
response_headers = [('Content-type', 'text/plain'),('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
@app.route('/request', methods=['POST'])
def processRequest():
data = request.form["param"]
# other code to do stuff with the data...
return Response(json.dumps({"status":"success"}), mimetype="application/json")
if __name__=="__main__":
app.run(debug=True, threaded=True, host="192.168.1.101")
Он возвращает 200 (ОК) в моем браузере, но я не получаю никаких возвращаемых значений, и я могу сказать, что выполняется мой блок ошибок, а не блок успеха.