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