2017-08-23 19 views
9

में एक डैश ऐप चला रहा है मेरे पास एक मौजूदा फ्लास्क ऐप है, और मैं पर एक और ऐप का मार्ग बनाना चाहता हूं। अधिक ठोस रूप से, दूसरा ऐप Plotly Dash ऐप है। मैं अपने मौजूदा फ्लास्क ऐप में अपना डैश ऐप कैसे चला सकता हूं?फ्लास्क ऐप

@app.route('/plotly_dashboard') 
def render_dashboard(): 
    # go to dash app 

मैं भी डैश उदाहरण के लिए एक मार्ग को जोड़ने के लिए यह एक बोतल अनुप्रयोग है के बाद से करने की कोशिश की, लेकिन मैं त्रुटि मिलती है: अब जब कि

The underlying Flask app is available at app.server .

import dash 
app = dash.Dash(__name__) 
server = app.server 

You can also pass your own Flask app instance into Dash:

import flask 
server = flask.Flask(__name__) 
app = dash.Dash(__name__, server=server) 

:

AttributeError: 'Dash' object has no attribute 'route' 

उत्तर

10

docs से आपके पास फ्लास्क इंस्टेंस है, आप जो भी रूट और अन्य कार्यक्षमता चाहते हैं उसे जोड़ सकते हैं।

@server.route('/hello') 
def hello(): 
    return 'Hello, World!' 

अधिक सामान्य प्रश्न "मैं कैसे एक दूसरे के बगल दो बोतल उदाहरणों सेवा कर सकते हैं" करने के लिए

, यह मानते हुए कि आप ऊपर डैश जवाब में के रूप में एक उदाहरण का उपयोग करते हुए अंत नहीं है, आप DispatcherMiddleware का प्रयोग करेंगे दोनों अनुप्रयोगों को माउंट करने के लिए।

dash_app = Dash(__name__) 
flask_app = Flask(__name__) 

application = DispatcherMiddleware(flask_app, {'/dash': dash_app.server}) 
3

अपने डैश उदाहरण में url_base_pathname सेट करें।

app_flask = flask.Flask(__name__) 

app_dash = dash.Dash(__name__, server=app_flask, url_base_pathname='/pathname') 

अब आप अपने प्लॉटली डैशबोर्ड ऐप पर किसी भी फ्लास्क मार्ग के तहत रीडायरेक्ट कर सकते हैं।

@app_flask.route('/plotly_dashboard') 
def render_dashboard(): 
    return flask.redirect('/pathname') 
संबंधित मुद्दे