Реальное использование точек сохранения MySQL в веб-сервисах?

Спасибо за обновление с образцом df. Я не совсем уверен, какова ваша цель, но у меня есть данные, проходящие через и отображающие df. Вот функциональный пример:

dict_form = {
    'Date': [2008, 2008, 2008, 2008, 2008],
    'Sport': ['Yoga', 'Yoga', 'Yoga', 'Yoga', 'Yoga'],
    'Gender': ['Male', 'Male', 'Male', 'Male', 'Male'],
    'Age': ['6-12', '13-17', '18-24', '25-34', '35-44'],
    'Players': [2308.54, 3551.60, 2663.70, 3551.60, 2130.96],
    'Core': [692.562, 1065.480, 799.110, 1065.480, 639.288],
}

df = pandas.DataFrame.from_dict(dict_form)

app = dash.Dash(__name__)

app.layout = html.Div(children=[
    html.Div(children=[
        html.H3('Age:', style={'paddingRight': '30px', 'fontSize': 18}),

        dcc.Checklist(
            id='Age',
            options=[
                {'label': i, 'value': i} for i in df['Age']],
            values=['18-24']
            )
    ]),

    html.Div(children=[
        html.H3('Gender:', style={'paddingRight': '30px', 'fontSize': 18}),
        dcc.Dropdown(
            id='Gender',
            options=[
                {'label': 'Male', 'value': 'Male'},
                {'label': 'Female', 'value': 'Female'}
            ],
            value='Male'
        )
    ], style={'width': '33%', 'display': 'inline-block'}),

    html.H3('Activity:', style={'paddingRight': '30px', 'fontSize': 18}),
    dcc.Dropdown(
        id='Sport',
        options=[
            {'label': i, 'value': i} for i in df['Sport']],
        value='Yoga'
    ),

    html.Div([
        dcc.Graph(id='linear')]),

    html.Div([
        dcc.Graph(id='linear2')
    ])
], style={'width': '33%', 'display': 'inline-block'})


@app.callback(
    dash.dependencies.Output('linear', 'figure'),
    [dash.dependencies.Input('Gender', 'value'),
     dash.dependencies.Input('Sport', 'value'),
     dash.dependencies.Input('Age', 'values')])
def update_graph(gender_name, sport_name, age_name):
    df1 = df[df['Gender'] == gender_name]
    df2 = df1[df1['Sport'] == sport_name]
    df3 = df2[df2['Age'].isin(age_name)]

    total_x = df3.Age

    trace1 = go.Bar(x=total_x, y=df3['Players'], name='Players')
    trace2 = go.Bar(x=total_x, y=df3['Core'], name='Core')

    total_layout = go.Layout(xaxis={'title': 'Year'},
                             yaxis={'title': 'Participants'},
                             title='Core Player Comparison',
                             hovermode='closest')

    return {'data': [trace2, trace1],
            'layout': [total_layout]}


if __name__ == '__main__':
    app.run_server(debug=True, threaded=True)

А вот скриншот карты:

Chart

6
задан Jacob Gabrielson 3 March 2009 в 06:26
поделиться

1 ответ

Я обычно склонен избегать ТОЧЕК СОХРАНЕНИЯ, поскольку это может сделать код довольно трудно, чтобы понять и проверить.

В случае Вы отправили, переноситься в единственную транзакцию будет зависеть от ли наличие OrdersAudit записи, точно соответствующие с Orders, часть Ваших бизнес-правил.

Править: Просто перечитайте свой вопрос, и у Вас нет требования для гарантируемой корреспонденции между OrdersAudit и Orders. Таким образом, я не использовал бы транзакции для вставки OrdersAudit записи.

1
ответ дан 17 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: