当前位置: 首页 > 知识库问答 >
问题:

为什么localhost:5000不工作在烧瓶?

巫欣荣
2023-03-14

我正在使用flask应用程序工厂模式,比如,并运行这个。py文件:

from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run(host='localhost', debug=True)

然后我像这样运行应用程序:

python run.py

但是当我去http://localhost:5000它不起作用。它说:

未找到

在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试。

可能有什么问题?当我有127.0.0.1地址时,它运行良好。。。

我需要在“localhost”上运行,因为我正在集成方形支付,他们的沙盒设置需要我从“localhost”向他们的应用编程接口发出请求。

此外,当我在浏览器中发出请求时,在flask响应的终端上有以下内容:

127.0.0.1 - - [09/Sep/2017 00:30:45] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -

看起来请求到达了flask,但flask返回404。

这是我初始化的一部分。py文件:

# from __future__ import print_function


# import flask
from flask import Flask, render_template, url_for, redirect, flash, request, \
    session, current_app, abort
import os
# flask sqlaclhemy
from sqlalchemy import func, desc, asc, or_, and_

from flask_admin import Admin, AdminIndexView
from flask_admin.contrib.sqla import ModelView

# Flask secrutiy
from flask_security import (Security, SQLAlchemyUserDatastore, 
    login_required, current_user)
from flask_login import LoginManager
from flask_mail import Mail

# square connect setup
import uuid
import squareconnect
from squareconnect.rest import ApiException
# from squareconnect.apis.locations_api import LocationsApi
from squareconnect.apis.transactions_api import TransactionsApi




mail = Mail()

class CustomAdminIndexView(AdminIndexView):
    def is_accessible(self):
        return current_user.is_authenticated and current_user.has_role('admin')

def create_app():
    app = Flask(__name__)
    app.config.from_object(os.environ['APP_SETTINGS'])
    mail.init_app(app)
    from models import db, User, Role
    db.init_app(app)

    user_datastore = SQLAlchemyUserDatastore(db, User, Role)
    security = Security(app, user_datastore)

    @app.route('/')
    def home():
        return render_template('home.html')

    return app

共有3个答案

邵逸明
2023-03-14

可能您需要安装虚拟环境

pip安装virtualenv

这样做。希望这样行

宦炜
2023-03-14

在您的主机文件中没有作为本地主机的条目

127.0.0.1       localhost

您可以通过以下方式检查主机文件

sudo vi /etc/hosts
open this file C:\Windows\System32\Drivers\etc\hosts

如果主机文件中没有localhost,请添加并保存。

阎宾实
2023-03-14

简单的替代解决方案是首先检查端口5000是否可用。您可以使用此命令检查:

netstat -lat

如果每件事都可以,这意味着你有一个问题与你的主页,你没有一个路由 '/' , 为什么你得到404错误,当你去localhost:5000/:所以要纠正它,你有3个解决方案:

>

  • 添加应用程序。在init中路由(“/”)。py文件

    直接添加到跑步中。创建应用程序后的py(不是一个好方法)

    尝试使用蓝图

    由于您没有提供init.py代码,请将其添加到您的run.py,

    from app import create_app
    app = create_app()
    @app.route('/')
    def homepage():
        return 'hello world'
    if __name__ == '__main__':
        app.run(host='localhost', port=9874)
    

    comment中建议的另一个解决方案是,通过键入以下命令,检查127.0.0.1 resolve to localhost是否找到主机文件,并检查您是否有与我相同的行:

    nano /etc/hosts
    

    并打开文件:

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1       localhost
    255.255.255.255 broadcasthost
    ::1             localhost
    

  •  类似资料:
    • 试图理解为什么这样一个简单的rest调用api不能从localhost(使用angular cli)工作。 这是服务代码: 浏览器的错误是: XMLHttpRequest 无法加载 http://www.mocky.io/v2/...对预检请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源”标头。因此,不允许访问源“http://localhost:4200”。

    • 我正在本地运行一个Flask-Restful API,并从另一个端口发送一个包含JSON的POST请求。我得到了错误 我得到 它将“Access-Control-Allow-Origin”显示为“*”。GET工作正常,只是POST给出了这个错误。会出什么问题?如果相关,对于前端,我使用react并通过Axios请求。

    • 当我调用下面的代码时,我总是得到 用户的值。Id和密码有效。结果错误总是说“无效令牌”,我没有尽可能地看到它,因为我得到它并立即检查它和它的错误。这只是一个理智测试——我通常通过电子邮件向用户发送令牌,但这也不起作用。 UPDATE 1我在同一个控制器中定义UserManager,如下所示: UPDATE 2这是我的Application ationUserManager代码:

    • 我一直在我的开发服务器上运行flask talisman,一切正常。然而,在我的专用生产服务器(Almalinux)上安装了相同的代码和要求,只需在app=Flask(_uname_u)之后添加Talisman(app)就会导致网页加载时不会重定向到https://localhost:8000.在域中键入后,我在浏览器上准确地看到的错误消息是: 无法访问此网站-localhost拒绝连接 我正在用

    • 我只是按照spring的指示将响应发送回特定用户,而不是广播消息。但最终,无法发送回响应消息。 这是我的js代码: 这是控制器: 这是Spring配置: 请帮忙。谢谢提前。 我已经尝试使用@SendToUser,@SendToUser(/队列/resp)和SimpMessagingTem板以及,完全不能响应消息到浏览器。

    • 我正在为youtube api实现OAuth 2… 公共静态凭据authorize(列表范围,字符串credentialDatastore)引发IOException { } 它在本地工作。从逻辑上讲,我将回调URL更改为http://localhost:8081/CallBack..在本地工作正常,但当我使用公共IP部署到AWS服务器时,它不起作用。 显示地址已被用于8081异常,甚至没有重定向