Как успешно использовать сервер разработки Flask с пост-запросом Ajax? - PullRequest
0 голосов
/ 15 марта 2019

В настоящее время я использую сервер разработки 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 (ОК) в моем браузере, но я не получаю никаких возвращаемых значений, и я могу сказать, что выполняется мой блок ошибок, а не блок успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...