windows - 无法从 Windows 主机访问在虚拟框中运行的 flask 服务器

标签 windows ubuntu flask server virtualbox

我尝试从 host='0.0.0.0' 运行它,但仍然无法访问。我可以从我的虚拟机 ping 我的 windows 机器 ip 192.168.1.109,但我无法从我的 windows 端从 ifconfig 10.0.2.15 ping 我的 Ubuntu VirtualMachine ip。如果有帮助,我正在使用 virtualbox。

运行.py

#!flask/bin/python
from app import app
app.run(host='0.0.0.0',port=5000, debug=True)

初始化 .py
import os
from flask import Flask
from flask.json import JSONEncoder
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_mail import Mail
from flask_babel import Babel, lazy_gettext
from config import basedir, ADMINS, MAIL_SERVER, MAIL_PORT, MAIL_USERNAME, \
    MAIL_PASSWORD
from .momentjs import momentjs

app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'
lm.login_message = lazy_gettext('Please log in to access this page.')
mail = Mail(app)
babel = Babel(app)


class CustomJSONEncoder(JSONEncoder):
    """This class adds support for lazy translation texts to Flask's
    JSON encoder. This is necessary when flashing translated texts."""
    def default(self, obj):
        from speaklater import is_lazy_string
        if is_lazy_string(obj):
            try:
                return unicode(obj)  # python 2
            except NameError:
                return str(obj)  # python 3
        return super(CustomJSONEncoder, self).default(obj)

app.json_encoder = CustomJSONEncoder

if not app.debug and MAIL_SERVER != '':
    import logging
    from logging.handlers import SMTPHandler
    credentials = None
    if MAIL_USERNAME or MAIL_PASSWORD:
        credentials = (MAIL_USERNAME, MAIL_PASSWORD)
    mail_handler = SMTPHandler((MAIL_SERVER, MAIL_PORT),
                               'no-reply@' + MAIL_SERVER, ADMINS,
                               'microblog failure', credentials)
    mail_handler.setLevel(logging.ERROR)
    app.logger.addHandler(mail_handler)

if not app.debug and os.environ.get('HEROKU') is None:
    import logging
    from logging.handlers import RotatingFileHandler
    file_handler = RotatingFileHandler('tmp/microblog.log', 'a',
                                       1 * 1024 * 1024, 10)
    file_handler.setLevel(logging.INFO)
    file_handler.setFormatter(logging.Formatter(
        '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'))
    app.logger.addHandler(file_handler)
    app.logger.setLevel(logging.INFO)
    app.logger.info('microblog startup')

if os.environ.get('HEROKU') is not None:
    import logging
    stream_handler = logging.StreamHandler()
    app.logger.addHandler(stream_handler)
    app.logger.setLevel(logging.INFO)
    app.logger.info('microblog startup')

app.jinja_env.globals['momentjs'] = momentjs

from app import views, models

最佳答案

当我主要更改此行时,它对我有用

app.run()


app.run(host='192.168.163.128', port=5000)

关于windows - 无法从 Windows 主机访问在虚拟框中运行的 flask 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148862/

相关文章:

csv - 使用 AWK 搜索 .CSV 文件 - 仅使用第一行

mongodb - 无法在ubuntu 16.10上安装mongodb

python - 无法为 Flask-Limiter 设置策略 ="moving-window"

python - Gunicorn:尝试启动 Flask 服务器时无法在 'app' 中找到属性 'wsgi'

c++ - Qmake 在创建 Visual Studio 项目时不替换环境变量?

Python 脚本在 IDLE 中执行时有效,但在控制台中无效

java - 从windows导出war文件并将其添加到ubuntu webapps

c# - 在 C# 中实现数独解算器

python - 如何在 Ubuntu 上的 GTK3 (GI) 和 Python 3 中获取剪贴板内容

python - 使用 Flask + 管理模块设置管理 View