我有一个web服务器(带apache的fedora)运行我的网站,我目前正在尝试创建我的Flask应用程序来接收来自我的app.js文件的AJAX调用,然后最终使用FTP将远程文本文件的内容输出回网站。
当我打AJAX的时候,我很难让我的路径点击我的Flask应用程序。我相信我知道问题所在,我的AJAX调用没有调用端口5000,这就是我在控制台中看到404错误的原因。但是,当我手动执行curl -X GET http://127.0.0.1:5000/index -d'test'时,我确实会看到正确的index.html页面按预期返回。
因此,我的问题是,通常如何在apache set服务器上安装Flask?
下面是我对app.py的AJAX调用。
app.js:
$(function(){ // this call is returning 404 not found.
$('button').click(function(){
$.ajax({
url: '/index',
data: user,
type: 'POST',
success: function(response){
console.log("Here is the success res: " + response + user);
},
error: function(error){
console.log("Here is the error res: " + error + user);
}
});
});
});这是我的水瓶功能引导我调用的地方。
app.py:
from flask import Flask, request, send_file, render_template, json
from ftplib import FTP
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world!'
@app.route('/index', methods=['GET', 'POST'])
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run()侦听端口80的所有进程:
# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
/opt/lamp 3179 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 6833 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 7665 root 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 7909 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 7919 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 10892 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 11676 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 11843 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 12345 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 12755 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)
/opt/lamp 20204 daemon 4u IPv6 2190211 0t0 TCP *:http (LISTEN)发布于 2018-07-03 19:37:09
此页详细介绍了您的部署选项。
Flask (和一般python应用程序)之间最大的区别在于,PHP本质上是一个模板系统。对于您的web服务器来说,每个PHP文件都只是一个HTML文件。请记住,PHP本身就是一个超文本处理器。
另一方面,Python应用程序是在服务器上运行的应用程序,可以处理请求并返回html。基本上,您需要一方面能够运行python应用程序,另一方面能够处理来自外部世界的请求并返回网页。
在已经安装和工作的Apache安装程序中,我将使用wsgi/Apache方法。这将使用Python服务器网关接口在运行中的应用程序和Apache之间提供一个新娘。
您也可以使用古尼坎,但是如果您已经熟悉Apache,那么mod_wsgi可能是最好的。
值得注意的是,您应该只在完成测试之后部署应用程序,因为调试在任何分叉环境中都不能工作(如果可以的话,这将是一个巨大的安全风险)。如果您的问题是本地测试的端口,请更改:
app.run()至:
app.run('localhost', port='80', debug=True)https://stackoverflow.com/questions/51160893
复制相似问题