рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЖрдЬ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЬрдЧрд░ рдирд╛рдордХ
рдбреИрд╢ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЧреЛрддрд╛рдЦреЛрд░реА рдХрд░реЗрдВред рдпрд╣ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ рдЖрдпрд╛ рдерд╛, рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкреНрд▓реЙрдЯрд▓реА рдврд╛рдВрдЪреЗ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдбреИрд╢ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдлреНрд▓рд╛рд╕реНрдХ, рд░рд┐рдПрдХреНрдЯ.рдЬреЗрдПрд╕, рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред
PLOTCON 2016 рдореЗрдВ рдХреНрд░рд┐рд╕ рдкрд╛рд░рдорд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди
рдЖрдЗрдП рдЕрднреА рд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ
рдХрд░реЗрдВ ред
pip install dash==0.31.1
рджреЛрд╕реНрддреЛрдВ, рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЛ рдЕрдВрдд рддрдХ рдкрдврд╝реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдХреНрд╕рд░ рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреЛрдб рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рджред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдирд╣реАрдВ рд╕рдордЭреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдореВрд▓ рдореЗрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдбреИрд╢ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред RuNet рдореЗрдВ рднреА рдХрдИ рд▓реЗрдЦ рд╣реИрдВ рдЬреЛ рдЙрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдерд╛ред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рднрд╛рдЧ, "рд▓реЗрдЖрдЙрдЯ," рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рднрд╛рдЧ рдЖрд╡реЗрджрди рдХреА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдбреИрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рднреА рджреГрд╢реНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рддрдерд╛рдХрдерд┐рдд
dash_core_components
рдФрд░
dash_html_components
рдореЗрдВ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ React.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА
рдЕрдкрдиреЗ рдШрдЯрдХ рдХрд╛
рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИdash_core_components
рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА, рдЪрд╛рд░реНрдЯ рдФрд░ рдЪреЗрдХ рдмреЙрдХреНрд╕ред
dash_html_components
рдореЗрдВ рдПрдЪрдЯреАрдПрдордПрд▓ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдлреЙрд░реНрдо рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Div рдмреНрд▓реЙрдХ рдпрд╛ рд╣реЗрдбрд░ рдЯреИрдЧ H1, H2, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣рдореЗрдВ рдкрд╛рдпрдерди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ html рд╕реЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдореВрд░реНрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
app.py
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ:
рдФрд░ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ:
$ python app.py
...Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреЛрд░реНрдЯ 8050 рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ (рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рдкрддреЗ рдкрд░ рдЬрд╛рдПрдВ
http://127.0.0.1:8050/
рдФрд░ рджреЗрдЦреЗрдВ:

рдЯрд┐рдкреНрдкрдгреА
layout
рдШрдЯрдХ рдореЗрдВ "рдШрдЯрдХреЛрдВ" рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ dash_html_components
рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд dash_html_components
ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП div рдмреНрд▓реЙрдХред
dash_html_components
рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ html рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рд╣реЛрддрд╛ рд╣реИред html.H1(children='Hello Dash')
рдШрдЯрдХ рдПрдХ HTML рддрддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ <h1>Hello Dash</h1>
рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВред
- рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рднреА рдШрдЯрдХ HTML рдШрдЯрдХ рдирд╣реАрдВ рд╣реИрдВред
dash_core_components
рдЬреЗрдПрд╕, рдПрдЪрдЯреАрдПрдордПрд▓, рд╕реАрдПрд╕рдПрд╕, рдФрд░ рд░рд┐рдПрдХреНрдЯ.рдЬреЗрдПрд╕ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рддрддреНрд╡реЛрдВ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рддрддреНрд╡реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
- рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рдХреАрд╡рд░реНрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбреИрд╢ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реИ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред
children
рд╡рд┐рд╢реЗрд╖рддрд╛ рдереЛрдбрд╝реА рдЦрд╛рд╕ рд╣реИред рд╕рдореНрдореЗрд▓рди рджреНрд╡рд╛рд░рд╛, рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк html.H1(children='Hello Dash')
рд╕рд╛рде html.H1('Hello Dash')
html.H1(children='Hello Dash')
рдХреЛ html.H1('Hello Dash')
ред
рдЯрд┐рдкреНрдкрдгреА
рдбреИрд╢ рдореЗрдВ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ:
hot-reloading
ред рдпрд╣ рдЙрд╕ рдХреНрд╖рдг рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдлрд╝рдВрдХреНрд╢рди
app.run_server(debug=True)
рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рднреА рдЖрдк рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд░ рдмрд╛рд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдбреИрд╢ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ HTML рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рдХреАрд╡рд░реНрдб рддрд░реНрдХреЛрдВ, рд╕рд╛рде рд╣реА HTML рддрддреНрд╡реЛрдВ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓реЗрдВ:
рд╣рдо рдкреГрд╖реНрда рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ
style
рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
html.Div
рдФрд░
html.H1
рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред
html.H1('Hello Dash', style={'textAlign': 'center', 'color': '#7FDBFF'})
рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╕реНрддреБрдд
html.H1('Hello Dash', style={'textAlign': 'center', 'color': '#7FDBFF'})
:
<h1 style="text-align: center; color: #7FDBFF">Hello Dash</h1>
рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╣реИрдВ:
- HTML
style
рдЧреБрдг рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВред рдбреИрд╢ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рд╢рдмреНрджрдХреЛрд╢ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- HTML рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖
style
рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдереЛрдбрд╝реА рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВред text-align
рдмрдЬрд╛рдп text-align
рд╣рдо text-align
рд▓рд┐рдЦрддреЗ рд╣реИрдВред
- рдбреИрд╢ (рдХрдХреНрд╖рд╛) рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдЧ рддрддреНрд╡ рдХреЗ рдмрдЪреНрдЪреЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ
children
рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдШрдЯрдХ
рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдбреИрд╢ рдореЗрдВ рддрдерд╛рдХрдерд┐рдд
reusable components
рдкреНрд░рджрд╛рди рдХрд┐рдП
reusable components
ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрдВрдбреЛрдВ рдХреЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
import dash import dash_core_components as dcc import dash_html_components as html import pandas as pd df = pd.read_csv( 'https://gist.githubusercontent.com/chriddyp/' 'c78bf172206ce24f77d6363a2d754b59/raw/' 'c353e8ef842413cae56ae3920b8fd78468aa4cb2/' 'usa-agricultural-exports-2011.csv') def generate_table(dataframe, max_rows=10): return html.Table(
') import dash import dash_core_components as dcc import dash_html_components as html import pandas as pd df = pd.read_csv( 'https://gist.githubusercontent.com/chriddyp/' 'c78bf172206ce24f77d6363a2d754b59/raw/' 'c353e8ef842413cae56ae3920b8fd78468aa4cb2/' 'usa-agricultural-exports-2011.csv') def generate_table(dataframe, max_rows=10): return html.Table(
рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛
рдЖрдЗрдП рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ HTML рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдХреНрдпрд╛ рд╣реИред
рдПрдХ HTML рдЯреЗрдмрд▓ рдХреЛ
рдЯреЗрдмрд▓ рдЯреИрдЧ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ
рдЯреНрд░ рдЯреИрдЧ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ
рд╡реЗрдВ рдЯреИрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Td рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЯреЗрдмрд▓ рд╕реЗрд▓ рдХреЛ рдЖрдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ:
<table style="width:100%"> <tr> <th>Firstname</th> <th>Lastname</th> <th>Age</th> </tr> <tr> <td>Jill</td> <td>Smith</td> <td>50</td> </tr> <tr> <td>Eve</td> <td>Jackson</td> <td>94</td> </tr> <tr> <td>John</td> <td>Doe</td> <td>80</td> </tr> </table>
рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдкреНрд░рдердо | рдЕрдВрддрд┐рдо рдирд╛рдо | рдЖрдпреБ |
---|
рдЬреАрд▓ | рд▓реЛрд╣рд╛рд░ | 50 |
рдИрд╡ | рдЬреИрдХреНрд╕рди | 94 |
рдЬреЙрди | рд╣рд░рд┐рдгреА | 80 |
рдХрд░реНрдиреЗрд▓ рдШрдЯрдХ (рдореБрдЦреНрдп рдШрдЯрдХ)
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛,
dash_core_components
рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЬреИрд╕реЗ: рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ, рдЧреНрд░рд╛рдлрд╝ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рдЖрдк рдЗрди рддрддреНрд╡реЛрдВ рдХреЗ рджреГрд╢реНрдп рдкрдХреНрд╖ рд╕реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб (рдкреНрд▓реЙрдЯрд▓реА рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдореНрдорд╛рди) рдХреЗ рд╕рд╛рде
рд╣реИ ред
рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрд░реНрдерд╛рддреН рдХреЛрдб рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдиреЗрд▓ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдмрд▓ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдерд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╣рдорд╛рд░реЗ рддрддреНрд╡ рдХреЗ рдирд╛рдо рдХреА рддрд░рд╣ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдкрдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдЧреЗ рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред
рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджреЗрдЦреЗрдВ:
import dash import dash_core_components as dcc import dash_html_components as html external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css'] app = dash.Dash(__name__, external_stylesheets=external_stylesheets) app.layout = html.Div([ html.Label('Dropdown'), dcc.Dropdown( options=[ {'label': 'New York City', 'value': 'NYC'}, {'label': u'Montr├йal', 'value': 'MTL'}, {'label': 'San Francisco', 'value': 'SF'} ], value='MTL' ), html.Label('Multi-Select Dropdown'), dcc.Dropdown( options=[ {'label': 'New York City', 'value': 'NYC'}, {'label': u'Montr├йal', 'value': 'MTL'}, {'label': 'San Francisco', 'value': 'SF'} ], value=['MTL', 'SF'], multi=True ), html.Label('Radio Items'), dcc.RadioItems( options=[ {'label': 'New York City', 'value': 'NYC'}, {'label': u'Montr├йal', 'value': 'MTL'}, {'label': 'San Francisco', 'value': 'SF'} ], value='MTL' ), html.Label('Checkboxes'), dcc.Checklist( options=[ {'label': 'New York City', 'value': 'NYC'}, {'label': u'Montr├йal', 'value': 'MTL'}, {'label': 'San Francisco', 'value': 'SF'} ], values=['MTL', 'SF'] ), html.Label('Text Input'), dcc.Input(value='MTL', type='text'), html.Label('Slider'), dcc.Slider( min=0, max=9, marks={i: 'Label {}'.format(i) if i == 1 else str(i) for i in range(1, 6)}, value=5, ), ], style={'columnCount': 2}) if __name__ == '__main__': app.run_server(debug=True)
рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рд╡ рдмреНрд▓реЙрдХ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рд╡рд┐рднрд┐рдиреНрди рдореБрдЦреНрдп рдШрдЯрдХ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЕрднреА рднреА рдкреНрд░рд╢реНрди рд╣реИрдВ?
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рдпрдерди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
>>> help(dcc.Dropdown)
рд╕рд╛рд░рд╛рдВрд╢
рдкрд╣рд▓реЗ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛
layout
рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕рдореЗрдВ HTML рдЯреИрдЧреНрд╕ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рдЬреИрд╕рд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рдбреИрд╢ рдХреЛрд░ рдХреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ
dash_core_components
рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВред
рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдкрдиреЗ рдкреЗрдЬ рдХреЛ рдХреИрд╕реЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╕рдВрдж рдЖрдпрд╛ рд╣реИ, рддреЛ рдПрдХ рдкреНрд▓рд╕ рдЪрд┐рд╣реНрди рдбрд╛рд▓реЗрдВ рдФрд░ рдореБрдЭреЗ рд╕рджрд╕реНрдпрддрд╛ рджреЗрдВред
* рдЕрдЧрд▓реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрдж рд╣реА рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛ *