Bu nedenle, buna geçerli bir yanıt olduğuna inanıyorum: önek, geliştirme tamamlandığında kullandığınız gerçek sunucu uygulamasında yapılandırılmalıdır. Apache, nginx vb.
Ancak, hata ayıklamada Flask uygulamasını çalıştırırken bunun geliştirme sırasında çalışmasını istiyorsanız, bu özete bir göz atın .
Flask DispatcherMiddleware
kurtarmaya!
Gelecek nesil için kodu buraya kopyalayacağım:
"Serve a Flask app on a sub-url during localhost development."
from flask import Flask
APPLICATION_ROOT = '/spam'
app = Flask(__name__)
app.config.from_object(__name__)
@app.route('/')
def index():
return 'Hello, world!'
if __name__ == '__main__':
from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware
app.config['DEBUG'] = True
application = DispatcherMiddleware(Flask('dummy_app'), {
app.config['APPLICATION_ROOT']: app,
})
run_simple('localhost', 5000, application, use_reloader=True)
Şimdi, yukarıdaki kodu bağımsız bir Flask uygulaması olarak çalıştırırken http://localhost:5000/spam/
görüntülenecektir Hello, world!
.
Başka bir cevapla ilgili bir yorumda şöyle bir şey yapmak istediğimi ifade ettim:
from flask import Flask, Blueprint
from some_submodule.flask import module_blueprint
app = Flask(__name__)
app.config['APPLICATION_ROOT'] = '/api'
app.register_blueprint(module_blueprint, url_prefix='/some_submodule')
app.run()
Yapılmış DispatcherMiddleware
örneğime başvurarak :
from flask import Flask, Blueprint
from flask.serving import run_simple
from flask.wsgi import DispatcherMiddleware
from some_submodule.flask import module_blueprint
app = Flask(__name__)
app.config['APPLICATION_ROOT'] = '/api'
app.register_blueprint(module_blueprint, url_prefix='/some_submodule')
application = DispatcherMiddleware(Flask('dummy_app'), {
app.config['APPLICATION_ROOT']: app
})
run_simple('localhost', 5000, application, use_reloader=True)
flask.Flask#create_url_adapter
ve çalışması gerekiyormuşwerkzeug.routing.Map#bind_to_environ
gibi görünüyor - kodu nasıl çalıştırıyordunuz? ( Beklenen değeri döndürmek için uygulamanın bir WSGI ortamında alt yola monte edilmesi gerekiyor .)url_for