Javascript 使用Apache时未找到应用程序路由

Javascript 使用Apache时未找到应用程序路由,javascript,python,ajax,flask,Javascript,Python,Ajax,Flask,我正在尝试运行一个python脚本,该脚本获取javascript中收集的数据,用python进行处理,然后将其插入数据库。我在Apache上运行这个网页,我知道insertingagement()函数可以连接到我的数据库 但是,当我使用以下AJAX请求将数据发送到python文件时,app.run()会启动,但不会进入insertNewData()函数。我猜这和我使用的路径有关?任何帮助都将不胜感激 这是我在/home/webpage/script.js中的AJAX请求: $.ajax({

我正在尝试运行一个python脚本,该脚本获取javascript中收集的数据,用python进行处理,然后将其插入数据库。我在Apache上运行这个网页,我知道insertingagement()函数可以连接到我的数据库

但是,当我使用以下AJAX请求将数据发送到python文件时,app.run()会启动,但不会进入insertNewData()函数。我猜这和我使用的路径有关?任何帮助都将不胜感激

这是我在/home/webpage/script.js中的AJAX请求:

$.ajax({
        url: "/home/pythonScripts/processdata.cgi/process",
        data: { employeeText: input1, customerText: input2, chatData: otherData},
        type: "POST",
        success: callbackFunc
    });
然后我的python位于/home/pythonScripts/processdata.cgi中:

#!C:\path\to\python\Python37\python.exe

import sys
import getopt
import cgi
import cgitb; cgitb.enable()
import mysql.connector as conn
#insertdata is another file with functions in it
import insertdata

from flask import Flask, render_template, redirect, url_for,request
from flask import make_response
app = Flask(__name__)

def htmlTop():
    print("""Content-type:text/html\n\n
            <!DOCTYPE html>
            <html lang="en">
                <head>
                    <meta charset="utf-8"/>
                    <title>My server-side template</title>
                </head>
                <body>""")

def htmlTail():
    print("""</body>
        </html>""")


@app.route("/home/pythonScripts/processdata.cgi/process", methods=['GET','POST'])
def insertNewData():
    print ("Started insert new data")
    if request.method == 'POST':
        print ("Inside conditional")
        employeeText = request.form['employeeText']
        customerText = request.form['customerText']
        chatData = request.form['chatData']

        # ... use data from request 

        return "Success"
    else:
      return "Error"

if __name__ == "__main__":
  try:
      htmlTop()
      app.run(debug=True)
      htmlTail()
  except:
      cgi.print_exception()
#!C:\path\to\python\Python37\python.exe
导入系统
导入getopt
导入cgi
进口cgib;cgib.enable()
将mysql.connector作为conn导入
#insertdata是另一个包含函数的文件
导入插入数据
从flask导入flask,呈现模板,重定向,url,请求
从flask import作出响应
app=烧瓶(名称)
def htmlTop():
打印(“”)内容类型:text/html\n\n
我的服务器端模板
""")
def htmlTail():
打印(“”)
""")
@app.route(“/home/pythonScripts/processdata.cgi/process”,方法=['GET','POST']))
def insertNewData():
打印(“开始插入新数据”)
如果request.method==“POST”:
打印(“内部条件”)
employeeText=request.form['employeeText']
customerText=request.form['customerText']
chatData=request.form['chatData']
# ... 使用来自请求的数据
返回“成功”
其他:
返回“错误”
如果名称=“\uuuuu main\uuuuuuuu”:
尝试:
htmlTop()
app.run(debug=True)
htmlTail()
除:
cgi.print_异常()

另外,我之所以使用.cgi,是因为我无法将Apache配置为运行python脚本,而不仅仅是返回文本文件。

作为替代答案,如果这不是生产,并且您使用的是Ubuntu系统,我设法在几天内让Flask应用程序运行

这里是我遵循的教程的链接

我知道它不能回答您的问题,但我发现它在第一次使用时很有用,而且它工作起来没有任何问题,例如使用表单、请求API数据和使用Jinja模板引擎打印

您还可以使用大量其他开发的插件进行用户管理和登录、身份验证,但最棒的是,您可以使用Python执行的任何操作都可以通过基于web的应用程序进行订购,因此,当您掌握了所有这些操作的工作原理时,您几乎无能为力

在回答这个问题时,我个人使用Gunicorn作为中间人,使用Nginx作为反向代理。但据我所知,Apache没有理由不能取代Nginx