gpt4 book ai didi

Python Flask 应用程序使用 ajax 将远程服务器文本文件输出到网络服务器并在网页上显示 404 not found

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:08 26 4
gpt4 key购买 nike

我有一个网络服务器(带 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 页面按预期返回。

所以我的问题是,Flask 通常如何在 apache 网络服务器上设置?

这是我对 Flask (app.py) 的 AJAX 调用。

应用程序.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);
}
});
});
});

这里是我的 Flask 函数路由我的调用的地方。

应用.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)

最佳答案

This page详细说明您的部署选项。

Flask(和一般的 Python 应用程序)之间的最大区别在于,PHP 的核心是一个模板系统。对于您的 Web 服务器,每个 PHP 文件只是一个 HTML 文件。请记住,根据其自身的定义,PHP 是一个超文本处理器。

另一方面,Python 网络应用程序是在您的服务器上运行的应用程序,可以随时处理请求并返回 html。基本上,您需要能够一方面运行 Python 应用程序,另一方面能够处理来自外界的请求并返回网页。

在您已经安装并运行 Apache 的设置中,我会使用 mod_wsgi/Apache method .这使用 Python Web Server Gateway Interface在您正在运行的应用程序和 Apache 之间提供桥梁。

你也可以使用 Gunicorn ,但如果您已经熟悉 Apache,mod_wsgi 可能是最好的选择。

值得注意的是,您应该只在完成测试后才部署您的应用程序,因为调试在任何 fork 环境中都不起作用(如果可以的话会带来巨大的安全风险)。如果您的问题是本地测试的端口,请更改:

app.run()

到:

app.run('localhost', port='80', debug=True)

关于Python Flask 应用程序使用 ajax 将远程服务器文本文件输出到网络服务器并在网页上显示 404 not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51160893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com