在女服务员下的Flask / Dash中将app.route链接到app.layout

问题描述

我试图找到答案,但是没有成功。我想我对发生的事情缺乏了解。

我有一个破折号应用程序,正在尝试部署到服务器。我将其包裹在Flask中,并且正在使用女服务员来服务。

该应用程序很简单,只有一页HTML页面,还有一些下拉菜单,这些驱动报表。我已经排除了细节。

我的问题是我看不到如何从@ app.route语句触发app.layout(HTML所在的位置)。

文件布局为:

  • server.py
  • myappname(dir)
    • 初始化 .py
    • myappname.py
    • views.py

代码(骨架)

# server.py

from waitress import serve
from myappname import app
serve(app,host='0.0.0.0',port=8050)



# myappname/__init__.py
    
from flask import Flask,render_template,request,session
from flask_session import Session
    
app = Flask(__name__)

import myappname.views


# myappname/views.py

from myappname import app
import flask 
@app.route('/')
def index():
    return flask.redirect('/myappname') 

# myappname/myappname.py
import dash
import dash_core_components as dcc
import dash_html_components as html
import numpy as np

from dash.dependencies import Input,Output

from flask import Flask,session
from flask_session import Session

# ... varIoUs procedures

server = flask.Flask(__name__)
app = dash.Dash(__name__,server=server,url_base_pathname='/myappname')

app.layout = html.Div([
    html.Div(rhubarb
    ),html.Div([rhubarb,rhubarb
    ])

@server.route('/')
def index():
    return flask.redirect('/myappname')

@app.callback(
    Output('Elementy','options'),[Input('Elementx','value')])
def fiddle1(selected_element):
    return blah

@app.callback(
    Output('Elementz','value'),[Input('Elementy','options')])
def fiddle1(available_options):
    return blah

如果有人可以提供帮助,我将不胜感激。谢谢。

解决方法

将大部分小文件折腾起来,将应用程序直接放在 init .py中。 server.py现在显示为:

from waitress import serve
from myappname import app
application = app.server
serve(application,host='0.0.0.0',port=8050)