首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python应用程序使用ajax将远程服务器文本文件输出到and服务器,并显示在网页上,找不到404

Python应用程序使用ajax将远程服务器文本文件输出到and服务器,并显示在网页上,找不到404
EN

Stack Overflow用户
提问于 2018-07-03 18:26:32
回答 1查看 768关注 0票数 1

我有一个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:

代码语言:javascript
复制
$(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:

代码语言:javascript
复制
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的所有进程:

代码语言:javascript
复制
# 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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-03 19:37:09

此页详细介绍了您的部署选项。

Flask (和一般python应用程序)之间最大的区别在于,PHP本质上是一个模板系统。对于您的web服务器来说,每个PHP文件都只是一个HTML文件。请记住,PHP本身就是一个超文本处理器。

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

在已经安装和工作的Apache安装程序中,我将使用wsgi/Apache方法。这将使用Python服务器网关接口在运行中的应用程序和Apache之间提供一个新娘。

您也可以使用古尼坎,但是如果您已经熟悉Apache,那么mod_wsgi可能是最好的。

值得注意的是,您应该只在完成测试之后部署应用程序,因为调试在任何分叉环境中都不能工作(如果可以的话,这将是一个巨大的安全风险)。如果您的问题是本地测试的端口,请更改:

代码语言:javascript
复制
app.run()

至:

代码语言:javascript
复制
app.run('localhost', port='80', debug=True)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51160893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档