【问题标题】:Need help accessing a virtual server using Flask需要帮助使用 Flask 访问虚拟服务器
【发布时间】:2021-03-28 20:09:51
【问题描述】:

因此,对于我们上一个编码项目,我们设置了一个在本地主机上运行的 Web API。但是现在他已经设置了一个虚拟服务器供我们使用,以及要使用的用户名和密码以及我们允许使用的端口。我在这里有我当前的代码。在最后一行,它曾经是 localhost,端口是 8080,但我更改了它以反映我们获得的新服务器。但是,它不起作用,我似乎无法在网上找到解决方案。我也有IP地址,它也不起作用。我不确定如何将我的用户名和密码添加到组合中,以及我确定访问服务器需要它。

from flask_cors import CORS
import os
from flask import Flask, jsonify, make_response, Blueprint
from flask_swagger_ui import get_swaggerui_blueprint
from routes import request_api
import ssl

context = ssl.SSLContext()
context.load_cert_chain('certificate.pem', 'key.pem')
APP = Flask(__name__)

SWAGGER_URL = '/swagger'
API_URL = '/static/swagger.json'
SWAGGERUI_BLUEPRINT = get_swaggerui_blueprint(
    SWAGGER_URL,
    API_URL,
    config={
        'app_name': "Kales Flask Project"
    }
)
APP.register_blueprint(SWAGGERUI_BLUEPRINT, url_prefix=SWAGGER_URL)


APP.register_blueprint(request_api.get_blueprint())


@APP.errorhandler(400)
def handle_400_error(_error):
    return make_response(jsonify({'error': 'Misunderstood'}), 400)


@APP.errorhandler(404)
def handle_404_error(_error):
    return make_response(jsonify({'error': 'Not found'}), 404)

@APP.errorhandler(401)
def handle_401_error(_error):
    return make_response(jsonify({'error': 'Invalid Key Provided'}), 401)



if __name__ == '__main__':
    CORS = CORS(APP)
    APP.run(host='easel4.cs.utsarr.net', port=int(os.environ.get('PORT', 12145)), ssl_context=context)

这是我尝试运行此代码时的输出

C:\Users\kingk\PycharmProjects\AdvanceSoft>python webapi.py
 * Serving Flask app "webapi" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
Traceback (most recent call last):
  File "webapi.py", line 44, in <module>
    APP.run(host='10.100.201.3', port=12145, ssl_context=context)
  File "C:\Users\kingk\PycharmProjects\AdvanceSoft\yes\lib\site-packages\flask\app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "C:\Users\kingk\PycharmProjects\AdvanceSoft\yes\lib\site-packages\werkzeug\serving.py", line 1009, in run_simple
    inner()
  File "C:\Users\kingk\PycharmProjects\AdvanceSoft\yes\lib\site-packages\werkzeug\serving.py", line 962, in inner
    fd=fd,
  File "C:\Users\kingk\PycharmProjects\AdvanceSoft\yes\lib\site-packages\werkzeug\serving.py", line 805, in make_server
    host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
  File "C:\Users\kingk\PycharmProjects\AdvanceSoft\yes\lib\site-packages\werkzeug\serving.py", line 698, in __init__
    HTTPServer.__init__(self, server_address, handler)
  File "C:\Users\kingk\AppData\Local\Programs\Python\Python37\lib\socketserver.py", line 452, in __init__
    self.server_bind()
  File "C:\Users\kingk\AppData\Local\Programs\Python\Python37\lib\http\server.py", line 137, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "C:\Users\kingk\AppData\Local\Programs\Python\Python37\lib\socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
OSError: [WinError 10049] The requested address is not valid in its context

【问题讨论】:

  • 嗨,欢迎来到 SO。有了您提供的信息,我们无法为您提供太多帮助。 “它根本不起作用”是什么意思?你有错误吗?哪一个?发布堆栈跟踪。另请阅读this

标签: python flask webapi


【解决方案1】:

我认为host='easel4.cs.utsarr.net' 是问题所在。 Application objectrun方法的Flask文档推荐:

host – 要监听的主机名。将此设置为“0.0.0.0”以使服务器也可以在外部使用。默认为 '127.0.0.1' 或 SERVER_NAME 配置变量中的主机(如果存在)。

【讨论】:

    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2011-11-08
    • 2012-03-08
    • 2012-03-11
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多