Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python. ΠŸΠΈΡ‚ΠΎΠ½ Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Dash β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для языка Python с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, прСдназначСнная для создания Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Она Π±Ρ‹Π»Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π½Π° GitHub Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Π² тСстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅. Команда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Dash Ρ€Π΅ΡˆΠΈΠ»Π° ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π² сСти, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»Π° вСсти Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ Π²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ GitHub. Благодаря ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΎΡ‚ Π±Π°Π½ΠΊΠΎΠ² ΠΈ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ курс развития Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. БСгодня ΡƒΠΆΠ΅ прСдставлСна пСрвая публичная вСрсия Dash, которая ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€Π΅ΠΌΠΈΡƒΠΌ-класса ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ Plotly. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ с Plotly, Ρ‚Π°ΠΊ ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Dash

Π’ настоящСС врСмя Dash ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ диспСтчСр ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip install dash. Dash распространяСтся с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

На ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Π²Ρ‹ смоТСтС ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с руководством ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΈ Π½Π° GitHub Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ исходный ΠΊΠΎΠ΄.

Dash β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для создания аналитичСских Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Она Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Python для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ исслСдования Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, модСлирования ΠΈ отчётности.

Dash Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС GUI (графичСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов) для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния Π½Π° Dash ΠΈΠ· 43 строк ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связываСт Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ мСню с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ D3.js. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС, ΠΊΠΎΠ΄ динамичСски экспортируСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Google Finance Π² Pandas DataFrame:

Код Dash являСтся Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, содСрТащих мноТСство ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтов. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с 5 Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, 3 β€” Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΈ с пСрСкрёстной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ написано Π½Π° Python, ΠΈ Π² Π½Ρ‘ΠΌ всСго лишь 160 строк ΠΊΠΎΠ΄Π°:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Dash с нСсколькими Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта прилоТСния ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ собствСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, располоТСния, Ρ†Π²Π΅Ρ‚Π° ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Dash ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ Π² Π‘Π΅Ρ‚ΠΈ, поэтому ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ всё, Π½Π° Ρ‡Ρ‚ΠΎ способСн CSS. НиТС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ½ΠΊΠΎ настраиваСмого ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ прилоТСния отчётности Π½Π° Dash, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π² стилС ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° финансовой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Goldman Sachs.

Π’ΠΎΠ½ΠΊΠΎ настраиваСмоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Dash, созданноС Π² стилС ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° финансовой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Goldman Sachs.

Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ Π½Π° JavaScript ΠΈΠ»ΠΈ HTML, ΠΊΠΎΠ³Π΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Dash Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Dash прСдоставляСт Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

import dash_core_components as dcc
dcc.Slider(value=4, min=-10, max=20, step=0.5,
           labels={-5: '-5 Degrees', 0: '0', 10: '10 Degrees'})

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° Π½Π° Dash

Dash прСдоставляСт простой Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ для привязки вашСго ΠΊΠΎΠ΄Π° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ интСрфСйсу Dash.

@dash_app.callback(Output('graph-id', 'figure'),
                   [Input('slider-id', 'value')])
def your_data_analysis_function(new_slider_value):
    new_figure = your_compute_figure_function(new_slider_value)
    return new_figure

Когда измСняСтся Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ элСмСнт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ элСмСнта Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°), Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Dash прСдоставляСт Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Python Π½ΠΎΠ²ΠΎΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’Π°ΡˆΠ° функция Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия с Π½ΠΎΠ²Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ: ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

DataFrame Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pandas, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ SQL-запрос, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡΠΈΠΌΡƒΠ»ΡΡ†ΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ вычислСния ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСстированиС. Dash рассчитываСт, Ρ‡Ρ‚ΠΎ ваша функция Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ свойство для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ элСмСнта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ, новая Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ тСкст.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½ΠΈΠΆΠ΅ прСдставлСно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Dash, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ обновляСт тСкстовый элСмСнт ΠΏΡ€ΠΈ взаимодСйствии с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ. Код прилоТСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas DataFrame Π½Π° основС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ лСкарствСнных вСщСствах ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора Π½Π° Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅. Код прилоТСния Ρ‚Π°ΠΊΠΆΠ΅ добавляСт строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС.

Благодаря этим Π΄Π²ΡƒΠΌ раздСлСниям ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Python ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Dash Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ всС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π΅Π±-прилоТСния. Dash достаточно прост, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΊ ΠΊΠΎΠ΄Ρƒ Python Π·Π° ΠΎΠ΄ΠΈΠ½ Π²Π΅Ρ‡Π΅Ρ€.

АрхитСктура

Flask ΠΈ React.js

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Dash β€” Π²Π΅Π±-сСрвСры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Flask ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ JSON Ρ‡Π΅Ρ€Π΅Π· HTTP-запросы. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Dash Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ React.js.

Flask β€” Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сообщСством Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Python Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Основной экзСмпляр Flask ΠΈ всС Π΅Π³ΠΎ настраиваСмыС свойства доступны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Dash.

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ возмоТности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΠ³Π°Ρ‚ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Flask.

React.js Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ΅Π½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ пСрСписали всю Π½Π°ΡˆΡƒ Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ наш ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React. Но Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π΄ΡƒΠ΅Ρ‚ насчёт React β€” Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈ Ρ‚Π°Π»Π°Π½Ρ‚Π»ΠΈΠ²Ρ‹ΠΉ состав сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» тысячи высококачСствСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², начиная с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… списков ΠΈ слайдСров, заканчивая калСндарями ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. И всё это публикуСтся с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ!

Dash ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΡ‰ΡŒ Flask ΠΈ React, подстраивая ΠΈΡ… ΠΏΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Python для спСциалистов ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ экспСртами Π² области Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΡ‚ React.js ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Python

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Dash β€” это классы Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ свойства ΠΈ значСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° React ΠΈ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ JSON. Dash прСдоставляСт Π½Π°Π±ΠΎΡ€ инструмСнтов для Π»Ρ‘Π³ΠΊΠΎΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² React Π² Π²ΠΈΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Dash. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ динамичСскоС программирования для автоматичСского создания классов Python ΠΈΠ· Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ свойства React β€”

propTypes. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ классы Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Dash, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ динамичСски сгСнСрированной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

>>> import dash_core_components as dcc
>>> dcc.Dropdown(valu=3)
Ошибка: нСизвСстный ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ `valu`
ДопустимыС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: id, className, disabled, multi, options, placeholder, value

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ динамичСски создаваСмых строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

 >>> help(dcc.Dropdown)
class Dropdown(dash.development.base_component.Component)
 |  ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка.
 |  ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка слуТит для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅
 |  элСмСнтов.
 |  значСния ΠΈ названия элСмСнтов Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² `options`
 |  свойство ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт(Ρ‹) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ свойством `value`.
| | ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π° (большС 5), ΠΈΠ»ΠΈ | ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ пространством. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ»ΠΈ чСкбоксы, | ΠšΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°ΠΆΡƒΡ‚ сразу всС элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. | | АргумСнты ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов: | - id (строка; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) | - className (строка; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) | - disabled (логичСский Ρ‚ΠΈΠΏ; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ): Ссли true, Π²Ρ‹Π±ΠΎΡ€ блокируСтся | - multi (логичСский Ρ‚ΠΈΠΏ; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ): Ссли true, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ | - options (список; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) | - placeholder (строка; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ): сСрый тСкст ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ | - value (строка | список; Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ): Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Π²Π²ΠΎΠ΄Π°. Если `multi` false (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), | Ρ‚ΠΎ value β€” строка, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ своим значСниям, | ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² свойствС `options`. Если `multi` β€” true, Ρ‚ΠΎ | ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ сразу нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° `value` β€” | массив элСмСнтов со значСниями, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π² свойствС | `options`.
| | ДоступныС события: 'change

ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ HTML-Ρ‚Π΅Π³ΠΎΠ² (Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ div, img, table) Ρ‚Π°ΠΊΠΆΠ΅ обрабатываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ React, Π° ΠΈΡ… классы Python доступны Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ dash_html_component. Основной Π½Π°Π±ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Dropdown, Graph, Slider, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Dash Ρ‡Π΅Ρ€Π΅Π· dash_core_components. ОбС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ стандартный Π½Π°Π±ΠΎΡ€ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств React-to-Dash с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости написания своСй собствСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ автоматичСски Π½Π΅ привязываСтся ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Dash. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² импортируСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Dash. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π±ΠΎΡ€Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств React-to-Dash ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ пСрСнСсти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ React.js Π² класс Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Dash. На ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС вы Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ руководство ΠΏΠΎ созданию собствСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅Β ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Dash Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… для вас.

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ прилоТСния

Бвойства прилоТСния Π½Π° Dash хранятся Π² интСрфСйсС (Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅). Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния, написанныС с использованиСм Dash, Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅: ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ нСсколько нСзависимых Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° сСссий, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дСйствия ΠΎΠ΄Π½ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Код прилоТСния Π½Π° Dash являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ: ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ значСния ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… свойств Python, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½ΠΈΡ… измСнСния. Π­Ρ‚ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” это просто Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов ΠΈΠ»ΠΈ свойств.

CSS ΠΈ стили

CSS ΠΈ стили ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ хранятся Π²Π½Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ нСзависимого управлСния вСрсиями ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Dash-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Команда Dash размСстила руководство ΠΏΠΎ основным стилям.

Визуализация Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Dash поставляСтся с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Graph, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Plotly.js. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Plotly.js ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Dash (ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ спСктр Π½Π°ΡƒΡ‡Π½Ρ‹Ρ…, финансовых ΠΈ Π΄Π΅Π»ΠΎΠ²Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. Она создана Π½Π° основС D3.js (для Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ типографичСского качСства ΠΈ экспорта Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ) ΠΈ WebGL (для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ).

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Dash элСмСнт Graph ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис, Ρ‡Ρ‚ΠΎ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Plotly.py с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Graph ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ систСмС событий Plotly.js, позволяя Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅ курсора, Ρ‰Π΅Π»Ρ‡ΠΊΠΈ ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ… Plotly.

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Dash β€” это новая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² срСдС Python, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ ΠΈΠ΄Π΅ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строится Dash, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСсятилСтий Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… прилоТСниях.

Если Π²Ρ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π² Excel, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΈ Π² Dash. Π’Π΅Π΄ΡŒ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Β«Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽΒ» модСль программирования. Π’ Excel ячСйки с Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ячССк с Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π›ΡŽΠ±Π°Ρ ячСйка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈ Ρ‚Π΅ΠΌ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π’ ячСйках с Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ячСйки с Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ зависят ΠΎΡ‚ Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ячССк с Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ позволяСт ΡΠ²ΡΠ·Π°Ρ‚ΡŒ нСсколько ячССк. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Excel-прилоТСния:

МоТно провСсти аналогию для Dash. ВмСсто ячССк Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ спСктр Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΈ, поля Π²Π²ΠΎΠ΄Π°, Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ списки ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ВмСсто написания сцСнария Excel ΠΈΠ»ΠΈ VBA ΠΌΡ‹ пишСм ΠΊΠΎΠ΄ Python. НиТС прСдставлСно Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π² этот Ρ€Π°Π· ΠΎΠ½ΠΎ написано Π½Π° Dash:

app.layout = html.Div([
    html.Label('Hours per Day'),
    dcc.Slider(id='hours', value=5, min=0, max=24, step=1),
    html. Label('Rate'),
    dcc.Input(id='rate', value=2, type='number'),
    html.Label('Amount per Day'),
    html.Div(id='amount'),
    html.Label('Amount per Week'),
    html.Div(id='amount-per-week')
])
@app.callback(Output('amount', 'children'),
              [Input('hours', 'value'), Input('rate', 'value')])
def compute_amount(hours, rate):
    return float(hours) * float(rate)
@app.callback(Output('amount-per-week', 'children'),
              [Input('amount', 'children')])
def compute_amount(amount):
    return float(amount) * 7

НСкоторым Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ нравится этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Excel ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π² тСхничСских вычислСниях ΠΈ Π² финансовой ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Excel β€” это тСхничСский вопрос. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π΅ΡΡ‚ΡŒ Π»Π΅Π³ΠΈΠΎΠ½Ρ‹ программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ Excel, VBA ΠΈ Π΄Π°ΠΆΠ΅ SQL.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel Π»Π΅Π³Ρ‡Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python, Π° ячСйки Excel Π»Π΅Π³Ρ‡Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Excel ΠΈΠΌΠ΅Π΅Ρ‚ извСстныС ограничСния: эти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ часто становятся слишком большими ΠΈΠ»ΠΈ уязвимыми, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° производствСнный ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠΊΡΠΏΠ΅Ρ€Ρ‚Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΈΠ»ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΌ вСдь Π·Π½Π°ΠΊΠΎΠΌ случай со Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΎΠΉ Π² 2013 Π³ΠΎΠ΄Ρƒ?

НадССмся, Ρ‡Ρ‚ΠΎ Dash сдСлаСт использованиС Python Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‰Π΅. Благодаря ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Dash, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Π­Ρ‚ΠΎ, бСзусловно, Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Shiny

Если Π²Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π° R, Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ. Shiny β€” это Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° чистом R, ΠΈ это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ! Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Shiny ΠΈΠ»ΠΈ Plotly для R. Dash ΠΈ Shiny ΠΏΠΎΡ…ΠΎΠΆΠΈ, Π½ΠΎ Dash Π½Π΅ стрСмится Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Shiny, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ философии Python ΠΈ R достаточно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСобходимости использования Ρ€Π°Π·Π½ΠΎΠ³ΠΎ синтаксиса.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, созданноС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Shiny Π½Π° языкС R.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с MATLAB

Если Π²Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π° MATLAB, Ρ‚ΠΎ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°ΠΊΠΎΠΌΠ° GUIDE β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для MATLAB. Компания Mathworks Π±Ρ‹Π»Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΎΠ²Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² области тСхничСских вычислСний. GUIDE Π±Ρ‹Π»Π° написана Π² Π΄Π°Π»Ρ‘ΠΊΠΎΠΌ 2004 Π³ΠΎΠ΄Ρƒ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, созданноС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GUIDE Π½Π° MATLAB.

Если ваши Π΄Π°Π½Π½Ρ‹Π΅ структурированы Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Tableau ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ BI-инструмСнт. Tableau β€” Π²ΠΎΡΡ…ΠΈΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт. Компания установила Π½ΠΎΠ²Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ развития Π² своСй отрасли, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ, Ρƒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ автономия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ своСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Компания Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ популярнСС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ пСрСкрёстной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΊΡ€Ρ‘ΡΡ‚Π½Π°Ρ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π² Tableau.

Dash Ρ‚Π°ΠΊΠΆΠ΅ слуТит Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ BI-инструмСнтам, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ…. Они ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для структурирования Π΄Π°Π½Π½Ρ‹Ρ…. Но ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ прСобразования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΏΡ€Π΅Π²Π·ΠΎΠΉΡ‚ΠΈ Ρ€Π°Π·ΠΌΠ°Ρ… ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ языков программирования ΠΈ сообщСств, Π²Ρ€ΠΎΠ΄Π΅ Python, становится Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅. Dash абстрагируСтся ΠΎΡ‚ мноТСства слоТностСй Π² создании ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, позволяя Π²Π°ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это красиво для вашСй аналитичСской Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Jupyter

НаконСц, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°Ρ… Jupyter. Они ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ приятный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ интСрфСйса Notebook. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΈ ΠΊ вашим Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌ Π² Jupyter Notebook.

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² Dash ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Jupyter. Π’ Jupyter Notebooks Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ нСпосрСдствСнно рядом с ΠΊΠΎΠ΄ΠΎΠΌ. Π’ Dash элСмСнты управлСния хранятся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ вашСго ΠΊΠΎΠ΄Π°. Dash большС Π½Π°Ρ†Π΅Π»Π΅Π½Π° Π½Π° прилоТСния для распространСния, Ρ‡Π΅ΠΌ Π½Π° распространяСмый ΠΊΠΎΠ΄ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ инструмСнты, создавая свои прилоТСния Π½Π° Dash Π² срСдС Jupyter Notebook.

КомандС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Dash Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ нравится ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ nteract, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния Π² Python ΠΈ Jupyter Notebook, позволяя ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Jupyter Notebook Π² Π²ΠΈΠ΄Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния.

Π›ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ бизнСс-модСль с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π‘Ρ‚Π°Ρ€Ρ‚Π°ΠΏ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Python, R ΠΈ MATLAB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с plotly.js. Компания Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΡ… ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (стыковочныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ).

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Dash-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ Heroku ΠΈΠ»ΠΈ Digital Ocean.

Если Π²Ρ‹ ΠΈΡ‰ΠΈΡ‚Π΅ Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π΅Π½ΠΈΠ΅ для создания своих ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π² области тСхничСских вычислСний, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π‘Ρ€Π΅Ρ‚Π° Π’ΠΈΠΊΡ‚ΠΎΡ€Π°

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Explorable Explanations, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ спСциализируСтся Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Create Reactive Web Apps in pure PythonΒ»

Python ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° простого Π²Π΅Π±-прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ машинного обучСния

Π’ΠΎΡ‚, ΠΊΡ‚ΠΎ занимаСтся ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ (Machine Learning, ML), ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, рСализуя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия: сбор Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… очистка, Ρ€Π°Π·Π²Π΅Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ, публикация ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² локальной сСти ΠΈΠ»ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π’ΠΎΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π²ΠΈΠ΄Π΅ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ подробности ΠΎΠ± этом.


Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² сфСрС машинного обучСния

Π­Ρ‚Π°ΠΏ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ML-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Он Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ΅Π½ для Π΄Π°Ρ‚Π°-сайСнтистов ΠΈ спСциалистов ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ этапы. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ использованиС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Django ΠΈΠ»ΠΈ Flask. Π“Π»Π°Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚ΡƒΡ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для примСнСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтов Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ особыС знания ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ°Π»Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сСгодня ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ, Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ streamlit, pandas ΠΈ scikit-learn, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ машинного обучСния. Он Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ этого прилоТСния Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 50 строк. Π‘Ρ‚Π°Ρ‚ΡŒΡ основана Π½Π° этом Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ здСсь рассмотрСны, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ML-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².Β 

ΠžΠ±Π·ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ Π²ΠΈΠ΄ Ρ†Π²Π΅Ρ‚ΠΊΠ° ириса


БСгодня ΠΌΡ‹ создадим простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ машинного обучСния. Оно Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΊΠΈ ириса ΠΈΠ· Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π€ΠΈΡˆΠ΅Ρ€Π°, относя ΠΈΡ… ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π²ΠΈΠ΄ΠΎΠ²: ирис щСтинистый (iris setosa), ирис вСрсиколор (iris versicolor), ирис виргинский (iris virginica). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ мноТСство ML-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², построСнных Π½Π° основС этого Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Но, надСюсь, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚. Π’Π΅Π΄ΡŒ этот Π½Π°Π±ΠΎΡ€ β€” ΠΎΠ½ ΠΊΠ°ΠΊ Β«lorem ipsumΒ» β€” классичСский бСссмыслСнный тСкст-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π² ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹ страниц.

Нам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ модСль ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, понадобятся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ streamlit, pandas ΠΈ scikit-learn. ВзглянСм Π½Π° ΠΎΠ±Ρ‰ΡƒΡŽ схСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Он Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π΄Π²ΡƒΡ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ… частСй: Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΈ бэкСнд.

Π’ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-части прилоТСния, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π½Π° Π²Π΅Π±-страницС, Π±ΡƒΠ΄Π΅Ρ‚ боковая панСль, находящаяся слСва, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с характСристиками Ρ†Π²Π΅Ρ‚ΠΊΠΎΠ² ириса: Π΄Π»ΠΈΠ½Π° лСпСстка (petal length), ΡˆΠΈΡ€ΠΈΠ½Π° лСпСстка (petal width), Π΄Π»ΠΈΠ½Π° Ρ‡Π°ΡˆΠ΅Π»ΠΈΡΡ‚ΠΈΠΊΠ° (sepal length), ΡˆΠΈΡ€ΠΈΠ½Π° Ρ‡Π°ΡˆΠ΅Π»ΠΈΡΡ‚ΠΈΠΊΠ° (sepal width). Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ бэкСнду, Π³Π΄Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ обучСнная модСль Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ характСристики. ЀактичСски, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая, получая характСристики Ρ†Π²Π΅Ρ‚ΠΊΠ°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π²ΠΈΠ΄. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ классификации ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Ρƒ.

Π’ бэкСнд-части прилоТСния Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π²Ρ‘Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, сохраняСтся Π² Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ тСстовых Π΄Π°Π½Π½Ρ‹Ρ… для ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠŸΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ построСна модСль для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ «случайный лСс» ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ scikit-learn. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, модСль Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° для классификации Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” для опрСдСлСния Π²ΠΈΠ΄Π° Ρ†Π²Π΅Ρ‚ΠΊΠ°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, вмСстС со свСдСниями ΠΎ Π²ΠΈΠ΄Π΅ Ρ†Π²Π΅Ρ‚ΠΊΠ°, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ прогностичСской вСроятности. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ достовСрности Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² классификации.

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ


Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, здСсь ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ трСмя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ: streamlit, pandas ΠΈ scikit-learn. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ pip install:
pip install streamlit
pip install pandas
pip install -U scikit-learn

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-прилоТСния


Π’Π΅ΠΏΠ΅Ρ€ΡŒ напишСм ΠΊΠΎΠ΄ прилоТСния. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Ρƒ нас довольно скромный. Он состоит ΠΈΠ· ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ 50 строк ΠΊΠΎΠ΄Π°. А Ссли Ρ‚ΠΎΡ‡Π½Π΅Π΅ β€” Ρ‚ΠΎ ΠΈΡ… Ρ‚ΡƒΡ‚ всСго 48. Если ΠΆΠ΅ этот ΠΊΠΎΠ΄ Β«ΡƒΠΏΠ»ΠΎΡ‚Π½ΠΈΡ‚ΡŒΒ», избавившись ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ пустых строк, Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сократится Π΄ΠΎ 36 строк.
import streamlit as st
import pandas as pd
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier

st.write("""
# Simple Iris Flower Prediction App
This app predicts the **Iris flower** type!
""")

st.sidebar.header('User Input Parameters')

def user_input_features():
Β Β Β Β sepal_length = st.sidebar.slider('Sepal length', 4.3, 7.9, 5.4)
Β Β Β Β sepal_width = st.sidebar.slider('Sepal width', 2.0, 4.4, 3.4)
Β Β Β Β petal_length = st.sidebar.slider('Petal length', 1.0, 6.9, 1.3)
Β Β Β Β petal_width = st.sidebar.slider('Petal width', 0.1, 2.5, 0.2)
Β Β Β Β data = {'sepal_length': sepal_length,
Β Β Β Β Β Β Β Β Β Β Β Β 'sepal_width': sepal_width,
Β Β Β Β Β Β Β Β Β Β Β Β 'petal_length': petal_length,
Β Β Β Β Β Β Β Β Β Β Β Β 'petal_width': petal_width}
Β Β Β Β features = pd.DataFrame(data, index=[0])
Β Β Β Β return features

df = user_input_features()

st.subheader('User Input parameters')
st.write(df)

iris = datasets.load_iris()
X = iris.data
Y = iris.target

clf = RandomForestClassifier()
clf.fit(X, Y)

prediction = clf. predict(df)
prediction_proba = clf.predict_proba(df)

st.subheader('Class labels and their corresponding index number')
st.write(iris.target_names)

st.subheader('Prediction')
st.write(iris.target_names[prediction])
#st.write(prediction)

st.subheader('Prediction Probability')
st.write(prediction_proba)

Π Π°Π·Π±ΠΎΡ€ ΠΊΠΎΠ΄Π°


Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ этот ΠΊΠΎΠ΄.

β–Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

import streamlit as st
import pandas as pd
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier

Π’ этих строках ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ streamlit ΠΈ pandas, назначая ΠΈΠΌ, соотвСтствСнно, псСвдонимы st ΠΈ pd. ΠœΡ‹, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ datasets ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ scikit-learn (sklearn). ΠœΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ этим ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π½ΠΈΠΆΠ΅, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ iris = datasets.load_iris(), для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ нас Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‚ΡƒΡ‚ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ RandomForestClassifier() ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° sklearn. ensemble.

▍ЀормированиС Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ

st.sidebar.header('User Input Parameters')

Π’ этой строкС ΠΌΡ‹ описываСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ st.sidebar.header(). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ sidebar стоит ΠΌΠ΅ΠΆΠ΄Ρƒ st ΠΈ header(), Ρ‡Ρ‚ΠΎ ΠΈ Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ st.sidebar.header(). Π­Ρ‚Π° функция сообщаСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ streamlit ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π² Π±ΠΎΠΊΠΎΠ²ΡƒΡŽ панСль.
def user_input_features():
Β Β Β Β sepal_length = st.sidebar.slider('Sepal length', 4.3, 7.9, 5.4)
Β Β Β Β sepal_width = st.sidebar.slider('Sepal width', 2.0, 4.4, 3.4)
Β Β Β Β petal_length = st.sidebar.slider('Petal length', 1.0, 6.9, 1.3)
Β Β Β Β petal_width = st.sidebar.slider('Petal width', 0.1, 2.5, 0.2)
Β Β Β Β data = {'sepal_length': sepal_length,
Β Β Β Β Β Β Β Β Β Β Β Β 'sepal_width': sepal_width,
Β Β Β Β Β Β Β Β Β Β Β Β 'petal_length': petal_length,
Β Β Β Β Β Β Β Β Β Β Β Β 'petal_width': petal_width}
Β Β Β Β features = pd. DataFrame(data, index=[0])
Β Β Β Β return features

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ объявляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ user_input_features(), которая Π±Π΅Ρ€Ρ‘Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ характСристики Ρ†Π²Π΅Ρ‚ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вводятся с использованиСм ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ²), ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π²ΠΈΠ΄Π΅ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ вводится Π² систСму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°. НапримСр, ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ для Π²Π²ΠΎΠ΄Π° Π΄Π»ΠΈΠ½Ρ‹ Ρ‡Π°ΡˆΠ΅Π»ΠΈΡΡ‚ΠΈΠΊΠ° (sepal length) описываСтся Ρ‚Π°ΠΊ: st.sidebar.slider(β€˜Sepal length’, 4.3, 7.9, 5.4). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‘Ρ‚ подпись ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Ρ‹ΡˆΠ΅ Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, тСкст Sepal length. Π”Π²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π·Π°Π΄Π°ΡŽΡ‚ минимальноС ΠΈ максимальноС значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°. ПослСдний Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π·Π°Π΄Π°Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, выставляСмоС Π½Π° ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы. Π—Π΄Π΅ΡΡŒ это β€” 5.4.

▍БозданиС ΠΌΠΎΠ΄Π΅Π»ΠΈ

df = user_input_features()

Π—Π΄Π΅ΡΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ, сформированный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ user_input_features(), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ обсудили, записываСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ df.
iris = datasets.load_iris()

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Iris ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° sklearn.datasets ΠΈ запись Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ iris.
X = iris.data

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π₯, содСрТащСй свСдСния ΠΎ 4 характСристиках Ρ†Π²Π΅Ρ‚ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² iris.data.
Y = iris.target

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Y, которая содСрТит свСдСния ΠΎ Π²ΠΈΠ΄Π΅ Ρ†Π²Π΅Ρ‚ΠΊΠ°. Π­Ρ‚ΠΈ свСдСния хранятся Π² iris.target.
clf = RandomForestClassifier()

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ RandomForestClassifier(), Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ классификатор, основанный Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ «случайный лСс», ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ clf.
clf.fit(X, Y)

Π’ΡƒΡ‚ ΠΌΡ‹ ΠΎΠ±ΡƒΡ‡Π°Π΅ΠΌ модСль, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ clf.fit(), пСрСдавая Π΅ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ X ΠΈ Y. Π‘ΡƒΡ‚ΡŒ происходящСго Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ модСль Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡƒΡ‡Π΅Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π²ΠΈΠ΄Π° Ρ†Π²Π΅Ρ‚ΠΊΠ° (Y) Π½Π° основС Π΅Π³ΠΎ характСристик (X).
prediction = clf.predict(df)

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ Π²ΠΈΠ΄Π΅ Ρ†Π²Π΅Ρ‚ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
prediction_proba = clf.predict_proba(df)

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ прогностичСской вСроятности.

▍ЀормированиС основной ΠΏΠ°Π½Π΅Π»ΠΈ

st.write("""
# Simple Iris Flower Prediction App
This app predicts the **Iris flower** type!
""")

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ st.write(), Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ тСкст. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΌ Π² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ прилоТСния, тСкст ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Markdown. Π‘ΠΈΠΌΠ²ΠΎΠ» # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ тСкст являСтся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Π—Π° строкой Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈΠ΄Ρ‘Ρ‚ строка ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкста.
st.subheader('User Input parameters')

Π’ этой строкС, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ st.subheader(), ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π² основной ΠΏΠ°Π½Π΅Π»ΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для оформлСния Ρ€Π°Π·Π΄Π΅Π»Π° страницы, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ содСрТимоС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠΎΠ².
st.write(df)

Π­Ρ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ панСль содСрТимоС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° df.
st.subheader('Class labels and their corresponding index number')

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ описываСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ основной ΠΏΠ°Π½Π΅Π»ΠΈ. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π²ΠΈΠ΄Π°Ρ… Ρ†Π²Π΅Ρ‚ΠΊΠΎΠ².
st.write(iris.target_names)

Π—Π΄Π΅ΡΡŒ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» основной ΠΏΠ°Π½Π΅Π»ΠΈ, выводятся названия Π²ΠΈΠ΄ΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΊΠΎΠ² (setosa, versicolor ΠΈ virginica) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€Π° (0, 1, 2).
st.subheader('Prediction')

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° для Ρ€Π°Π·Π΄Π΅Π»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ классификации.
st.write(iris.target_names[prediction])

Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° классификации. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ prediction β€” это Π½ΠΎΠΌΠ΅Ρ€ Π²ΠΈΠ΄Π° Ρ†Π²Π΅Ρ‚ΠΊΠ°, Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΉ модСлью Π½Π° основС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция iris.target_names[prediction].
st.subheader('Prediction Probability')

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠ³ΠΎ (ΠΈ послСднСго) Ρ€Π°Π·Π΄Π΅Π»Π° основной ΠΏΠ°Π½Π΅Π»ΠΈ. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ прСдставлСны Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ прогностичСской вСроятности.
st.write(prediction_proba)

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ прогностичСской вСроятности.

Запуск Π²Π΅Π±-прилоТСния


Код прилоТСния сохранён Π² Ρ„Π°ΠΉΠ»Π΅ iris-ml-app.py. ΠœΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:
streamlit run iris-ml-app.py

Если всё ΠΈΠ΄Ρ‘Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:
> streamlit run iris-ml-app.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://10.0.0.11:8501

Π§Π΅Ρ€Π΅Π· нСсколько сСкунд Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ адрСс http://localhost:8501.

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ рисунок.


Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Π²Π΅Π±-прилоТСния для классификации Ρ†Π²Π΅Ρ‚ΠΊΠΎΠ² ириса. Если Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ стрСлкС, находящСйся Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠΊΠ½Π°, располоТСнного Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части рисунка, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° боковая панСль

Π˜Ρ‚ΠΎΠ³ΠΈ


ΠœΠΎΠΆΠ΅Ρ‚Π΅ сСбя ΠΏΠΎΠ·Π΄Ρ€Π°Π²ΠΈΡ‚ΡŒ: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ машинного обучСния. Π’Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² своём ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ ML-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π° Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° своём Π²Π΅Π±-сайтС (ΠΏΡ€Π°Π²Π΄Π°, Π²Ρ‹, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ модСль, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅).Β 

ΠŸΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ streamlit?

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² созданиС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python

Π’ создании Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ часто трСбуСтся использованиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Π½ΠΈΡ….

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… обслуТиваСмых Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ становится Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΡƒΠ±Π΅Ρ€Π΅Π³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ написания ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° снова ΠΈ снова.

ΠžΠ±Ρ‰ΠΈΠ΅ характСристики:

  • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL-адрСсов
  • Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄Π°
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом
  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ стандартных Π°Ρ‚Π°ΠΊ

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

НапримСр, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Flask Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Для ΠΈΡ… использования потрСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. А Π²ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρƒ нас Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π΄ΠΎ нас. И Ρ‚ΡƒΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли Π²Ρ‹ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ вСсь спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся.

Django ΠΈ Flask – самыС популярныС Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Однако ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

  • Bottle
  • Pyramid
  • Muffin
  • CherryPy
  • web2py
  • Falcon
  • Turbo2Gears


Django являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Python. Π£ Π½Π΅Π³ΠΎ довольно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½ΠΈ ΠΎ Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π‘Π°ΠΉΡ‚Ρ‹, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Django, ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с высоким Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ (50 тысяч просмотров Π² сСкунду ΠΈ Π±ΠΎΠ»Π΅Π΅).

Доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-рСляционноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅: Π²Ρ‹ опрСдСляСтС свои ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Python, ΠΈ Django Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСляционными систСмами управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”). Однако, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС SQL-запросы Π² Django. Π’Π°ΠΊΠΆΠ΅ Π² этом Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ поддСрТиваСтся ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL-адрСсов.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

    • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-рСляционноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
    • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL-адрСсов ΠΈ ΠΈΡ… прСдставлСния
    • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ шаблонов
    • Π€ΠΎΡ€ΠΌΡ‹
    • Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ
    • ΠŸΡ€Π°Π²Π° администратора
    • Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ
    • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Django побольшС, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ это.

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ сайты, ΠΊΠ°ΠΊ NASA, BitBucket ΠΈ Pinterest Π±Ρ‹Π»ΠΈ написаны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Django?


Flask являСтся ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½. Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π£ Flask Π½Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ систСмы Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ систСмы ORM. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π²Π°ΠΌ потрСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Flask часто ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ с SQLAlchemy для использования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Flask ΠΎΡ‡Π΅Π½ΡŒ прост ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн:

from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello World!'
 
if __name__ == '__main__':
    app.run()

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ URL-адрСсов, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ (с Jinja2), ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансами ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ Π² области бСзопасности.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

  • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL-адрСсов ΠΈ ΠΈΡ… прСдставлСния
  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ шаблонов
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансами

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Flask побольшС, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ это.

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Flask Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ°ΠΏΡ€Π΅Π»ΡŒΡΠΊΠ°Ρ ΡˆΡƒΡ‚ΠΊΠ°?

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для дСмонстрации data science ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Python – Π‘Π»ΠΎΠ³ SkillFactory

На Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ 11 ΠΌΠΈΠ½. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 397 ОбновлСно

Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Π΅Π±-прилоТСния для дСмонстрации своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π±Π΅Π· знания ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ-настоящСму Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ смоТСм ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΎ сдСланной Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ нСбольшой ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² Power Point Π±Ρ‹Π»ΠΎ достаточно для дСмонстрации ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ сСйчас, с появлСниСм инструмСнтов для создания Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ RShiny ΠΈΠ»ΠΈ Dash, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ data science-спСциалист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставлСниС ΠΎ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ….

Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ достаточно слоТны Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ. Π― Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΏΡƒΡ‚Π°ΡŽΡΡŒ ΠΏΠΎ всСх этих HTML, CSS ΠΈ Javascript, ΠΈ Π΄Π°ΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ выглядит простым Π² исполнСнии, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС большого количСства ΠΏΡ€ΠΎΠ± ΠΈ ошибок.

НС говоря ΡƒΠΆ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сущСствуСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, ΠΈ это сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ людСй, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° являСтся второстСпСнным Π½Π°Π²Ρ‹ΠΊΠΎΠΌ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅, ΠΌΡ‹ ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½Ρ‹ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²? Или Π½Π° Π·Π²ΠΎΠ½ΠΊΠΈ нашим Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ посрСди Π½ΠΎΡ‡ΠΈ с Π³Π»ΡƒΠΏΡ‹ΠΌΠΈ вопросами?

И Ρ‚ΡƒΡ‚ Π½Π°ΠΌ Π½Π° Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΡƒ ΡΠΏΠ΅ΡˆΠΈΡ‚ Streamlit с ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Python. БлСдуя философии Python – β€œΠΏΡ€ΠΎΡΡ‚ΠΎ – Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ слоТно”, Streamlit ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния для дСмонстрации data science-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Streamlit.

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Streamlit, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Π΅Π³ΠΎ созданию, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ основатСлСй Адриана Врёля.

Π£Π·Π½Π°ΠΉΡ‚Π΅ подробности ΠΎ курсС Data Science Π½Π° нашСм сайтС.


Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Streamlit ΠΎΡ‡Π΅Π½ΡŒ просто, дСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:Β 

pip install streamlit

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π»ΠΈ ΠΏΡ€ΠΎΡˆΠ»Π° установка, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

streamlit hello

ПослС этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ URL localhost:8501 Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Streamlit Π² дСйствии. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ прСдоставили нСсколько Π΄Π΅ΠΌΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. НС Ρ‚ΠΎΡ€ΠΎΠΏΠΈΡ‚Π΅ΡΡŒ ΠΈ ΠΏΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности прилоТСния, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.


Streamlit Hello World

Streamlit стрСмится ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΡ‰Π΅ с использованиСм ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Python.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π»ΠΈ это Ρƒ Π½ΠΈΡ….

Π― Π½Π°Ρ‡Π½Ρƒ с простого прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Streamlit Hello World. ΠŸΡ€ΠΎΡΡ‚ΠΎ скопируйтС тСкст Π½ΠΈΠΆΠ΅ Π² Ρ„Π°ΠΉΠ» с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ helloworld.py:

import streamlit as st
x = st.slider('x')
st.write(x, 'squared is', x * x)

И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

streamlit run helloworld.py

Вуаля, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ адрСсу localhost:8501, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ слайдСр для Π²Ρ‹Π±ΠΎΡ€Π° числа ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ возвСдСния этого числа Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ со слайдСром

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ достаточно просто. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ использовали Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Streamlit:

  • Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ st.slider, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π²Π΅Π±-прилоТСния
  • И ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ st.write. Π― Π² восторгС ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΡ‹ ΠΈ ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ тСкст. Но ΠΌΡ‹ Π΅Ρ‰Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅.

Π’Π°ΠΆΠ½ΠΎ: ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ мСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅, всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСзапускаСтся Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.


Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π΄Π°ΡŽΡ‚ Π½Π°ΠΌ способ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Π½ΠΈΡ… Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Streamlit, Π½ΠΎ я ΠΎΠΏΠΈΡˆΡƒ нСсколько основных, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ пригодятся.

1. Π‘Π»Π°ΠΉΠ΄Π΅Ρ€

streamlit.slider(label, min_value=None, max_value=None, value=None, step=None, format=None)

ΠœΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ st. slider Π² дСйствии. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ минимального ΠΈ максимального значСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ шага для получСния входящих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

2. Π’Π²ΠΎΠ΄ тСкста

st.text_input β€” это самый простой способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ тСкст ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ β€” Π±ΡƒΠ΄ΡŒ это ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ URL ΠΈΠ»ΠΈ тСкст для Π°Π½Π°Π»ΠΈΠ·Π° Π΅Π³ΠΎ Ρ‚ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. НуТно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ тСкстового ΠΎΠΊΠ½Π°.

import streamlit as st
url = st.text_input('Enter URL')
st.write('The Entered URL is', url)

Π’Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ text_input

Π‘ΠΎΠ²Π΅Ρ‚: Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» helloworld.py ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π― ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽ ΠΈ измСняю Ρ„Π°ΠΉΠ» Π² Sublime Text ΠΈ наблюдаю Π·Π° измСнСниями Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ располоТСнном Π² рядом с ΠΎΠΊΠ½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

3. ЧСкбокс

Один ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования чСкбоксов β€” это ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния. Или, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, чСкбокс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π±ΠΎΡ€Π° Π±ΡƒΠ»Π΅Π²ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. st.checkbox()ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” ΠΌΠ΅Ρ‚ΠΊΡƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°.Β 

Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ чСкбокс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

import streamlit as st
import pandas as pd
import numpy as np
df = pd.read_csv("football_data.csv")
if st.checkbox('Show dataframe'):
Β Β Β st.write(df)
ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚-чСкбокс

4. Π’Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ st.selectbox для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· списка. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эта функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

import streamlit as st
import pandas as pd
import numpy as np
df = pd.read_csv("football_data.csv")
option = st.selectbox(
Β Β Β 'Which Club do you like best?',
Β Β Β Β df['Club'].unique())
'You selected: ', option
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ списком

5. Π’Ρ‹Π±ΠΎΡ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ st.multiselect, которая сохранит нСсколько Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ списка Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ options:

import streamlit as st
import pandas as pd
import numpy as np
df = pd. read_csv("football_data.csv")
options = st.multiselect(
'What are your favorite clubs?', df['Club'].unique())
st.write('You selected:', options)
Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ самыС Π²Π°ΠΆΠ½Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ· Π½ΠΈΡ….

НачнСм с простого: ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΡ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ‡Π΅ΠΉ с использованиСм Streamlit. Π­Ρ‚ΠΎ достаточно Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²:

import streamlit as st
import pandas as pd
import numpy as np
df = pd.read_csv("football_data.csv")
clubs = st.multiselect('Show Player for clubs?', df['Club'].unique())
nationalities = st.multiselect('Show Player from Nationalities?', df['Nationality'].unique())
# Filter dataframe
new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]
# write dataframe to screen
st.write(new_df)

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π‘ΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ. Но Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядит достаточно просто, ΠΌΠΎΠΆΠ΅Ρ‚ стоит Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²?

Streamlit Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Plotly, Bokeh, Matplotlib, Altair ΠΈ Vega charts. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Plotly Express, хотя это ΠΈ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Помимо Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π² Streamlit встроСны ΠΈ свои Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ st.line_chart ΠΈ st.area_chart.

БСйчас ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с plotly_express. Π’ΠΎΡ‚ ΠΊΠΎΠ΄ для нашСго простого прилоТСния. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ всСго 4 Π²Ρ‹Π·ΠΎΠ²Π° Streamlit, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ β€” это простой Python:

import streamlit as st
import pandas as pd
import numpy as np
import plotly_express as px
df = pd.read_csv("football_data.csv")
clubs = st.multiselect('Show Player for clubs?', df['Club'].unique())
nationalities = st.multiselect('Show Player from Nationalities?', df['Nationality'].unique())
new_df = df[(df['Club']. isin(clubs)) & (df['Nationality'].isin(nationalities))]
st.write(new_df)
# create figure using plotly express
fig = px.scatter(new_df, x ='Overall',y='Age',color='Name')
# Plot!
st.plotly_chart(fig)
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ мСняСм ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ запускаСтся Π·Π°Π½ΠΎΠ²ΠΎ. Π­Ρ‚ΠΎ нСцСлСсообразно, Ссли ΠΌΡ‹ создаСм прилоТСния для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния ΠΈΠ»ΠΈ слоТных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния. Streamlit Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

1. ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ нашСм Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ pandas снова всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСняСтся. И хотя это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с малСнькими Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ сСйчас, Π½ΠΎ это Π½Π΅ сработаСт с big data ΠΈΠ»ΠΈ Ссли Π½Π°ΠΌ понадобится ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ большоС количСство манипуляций с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ st.cache:

Для Π±ΠΎΠ»Π΅Π΅ слоТных ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для вычислСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

@st. cache
def complex_func(a,b):
   DO SOMETHING COMPLEX
# Won't run again and again.
complex_func(a,b)

Когда ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° эта функция вызываСтся, Streamlit Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Если Streamlit Π²ΠΈΠ΄ΠΈΡ‚ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, ΠΎΠ½ запустит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ сохранит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² локальном кэшС.

Когда функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π½Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, Ссли эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π΅ измСнились, Streamlit Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ β€” ΠΎΠ½ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ· кэша.

2. Π‘Π°ΠΉΠ΄Π±Π°Ρ€

Π’ зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° Rshiny dashboards ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свои Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² Π±ΠΎΠΊΠΎΠ²ΡƒΡŽ панСль, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΉ Π²ΠΈΠ΄. Для этого просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ st.sidebar Π² ΠΊΠΎΠ΄ вашСго Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°:

import streamlit as st
import pandas as pd
import numpy as np
import plotly_express as px
df = st.cache(pd.read_csv)("football_data.csv")
clubs = st. sidebar.multiselect('Show Player for clubs?', df['Club'].unique())
nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['Nationality'].unique())
new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]
st.write(new_df)
# Create distplot with custom bin_size
fig = px.scatter(new_df, x ='Overall',y='Age',color='Name')
# Plot!
st.plotly_chart(fig)
Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² сайдбар
3. Markdown

МнС нравится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Markdown. МнС ΠΎΠ½ каТСтся ΠΌΠ΅Π½Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, Ρ‡Π΅ΠΌ HTML, ΠΈ Π±ΠΎΠ»Π΅Π΅ подходящим для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² data science. МоТСм Π»ΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Markdown Π² Streamlit-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ?

И ΠΎΡ‚Π²Π΅Ρ‚: Π΄Π°, ΠΌΠΎΠΆΠ΅ΠΌ. Π•ΡΡ‚ΡŒ нСсколько способов это ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ. На ΠΌΠΎΠΉ взгляд, Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Magic commands. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ позволят Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Markdown Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ простоС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Но Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ st.markdown.

import streamlit as st
import pandas as pd
import numpy as np
import plotly_express as px
'''
# Club and Nationality App
This very simple webapp allows you to select and visualize players from certain clubs and certain nationalities. 
'''
df = st.cache(pd.read_csv)("football_data.csv")
clubs = st.sidebar.multiselect('Show Player for clubs?', df['Club'].unique())
nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['Nationality'].unique())
new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]
st.write(new_df)
# Create distplot with custom bin_size
fig = px.scatter(new_df, x ='Overall',y='Age',color='Name')
'''
### Here is a simple chart between player age and overall
'''
st.plotly_chart(fig)

ЀинальноС Π΄Π΅ΠΌΠΎ прилоТСния


Streamlit сдСлал процСсс создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΈ я ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΅Π³ΠΎ ΠΊ использования.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΎΡ‡Π΅Π½ΡŒ простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ возмоТности использования Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ…ΠΎΡ‡Ρƒ привСсти GAN-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π»ΠΈΡ† с сайта Streamlit. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° основС Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΈΠ΄Π΅ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

МнС нравятся цвСтовая Π³Π°ΠΌΠΌΠ° ΠΈ стили, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Streamlit ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, плюс ΠΌΠ½Π΅ каТСтся, Streamlit ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π² использовании, Ρ‡Π΅ΠΌ Dash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я использовал Π΄ΠΎ этого для создания Π΄Π΅ΠΌΠΎ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Streamlit позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π² свои прилоТСния.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ бонус β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Streamlit являСтся бСсплатным open source Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прямо ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ для любого измСнСния Π² Π΄Π΅ΠΌΠΎ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ; Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС это я ΠΌΠΎΠ³Ρƒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ сам.

Π― Π½Π΅ знаю, Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ Streamlit-прилоТСния Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² производствСнной срСдС, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для proof of concept ΠΈ Π΄Π΅ΠΌΠΎ. Π― ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Streamlit, ΠΈ, учитывая простоту использования ΠΈ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ прСдоставляСт, я Π΄ΡƒΠΌΠ°ΡŽ, Π²Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ стоит ΠΎΠ± этом Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ΄ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии прилоТСния здСсь.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: How to write Web apps using simple Python for Data Scientists?

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: Π£Ρ…Π°Ρ€ΠΎΠ²Π° Π•Π»Π΅Π½Π°

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-прилоТСния Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual Studio

  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 7Β ΠΌΠΈΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этого ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ (Π½Π° 5–10 ΠΌΠΈΠ½ΡƒΡ‚) знакомства с Visual Studio Π² качСствС IDE для Python создаСтся простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Flask.In this 5-10 minute introduction to Visual Studio as a Python IDE, you create a simple Python web application based on the Flask framework. Π’Ρ‹ создадитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ дискрСтных дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ функциями Visual Studio.You create the project through discrete steps that help you learn about Visual Studio’s basic features.

УстановитС Visual Studio бСсплатно со страницы скачиваСмых ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Visual Studio, Ссли Π΅Ρ‰Π΅ Π½Π΅ сдСлали этого.If you haven’t already installed Visual Studio, go to the Visual Studio downloads page to install it for free. Π’ установщикС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python. In the installer, make sure to select the Python development workload.

УстановитС Visual Studio бСсплатно со страницы скачиваСмых ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Visual Studio, Ссли Π΅Ρ‰Π΅ Π½Π΅ сдСлали этого.If you haven’t already installed Visual Studio, go to the Visual Studio downloads page to install it for free. Π’ установщикС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python.In the installer, make sure to select the Python development workload.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Create the project

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ инструкции ΠΏΠΎ созданию пустого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для прилоТСния:The following steps create an empty project that serves as a container for the application:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Visual Studio 2017.Open Visual Studio 2017.

  2. Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строкС мСню ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π€Π°ΠΉΠ» > Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ > ΠŸΡ€ΠΎΠ΅ΠΊΡ‚.From the top menu bar, choose File > New > Project.

  3. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ»Π΅ поиска Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ «Π’Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Python», Π² спискС ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, присвойтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ имя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ HelloPython, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК. In the New Project dialog box, enter «Python Web Project» in the search field on the upper right, choose Web project in the middle list, give the project a name like «HelloPython», then choose OK.

    Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Python, запуститС Visual Studio Installer, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ > Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Python, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.If you don’t see the Python project templates, run the Visual Studio Installer, select More > Modify, select the Python development workload, then choose Modify.

  4. Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ откроСтся Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€Π°Π²ΠΎΠΉ области.The new project opens in Solution Explorer in the right pane. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ° пуст, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ содСрТит Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². The project is empty at this point because it contains no other files.

  1. ЗапуститС Visual StudioΒ 2019.Open Visual Studio 2019.

  2. На Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ экранС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.On the start screen, select Create a new project.

  3. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ «Python Π²Π΅Π±» Π² ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Ρ€Ρ…Ρƒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² срСднСм спискС ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π”Π°Π»Π΅Π΅:In the Create a new project dialog box, enter «Python web» in the search field at the top, choose Web Project in the middle list, then select Next:

    Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Python, запуститС Visual Studio Installer, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ > Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Python, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.If you don’t see the Python project templates, run the Visual Studio Installer, select More > Modify, select the Python development workload, then choose Modify.

  4. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ HelloPython Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ располоТСниС ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ.In the Configure your new project dialog that follows, enter «HelloPython» for Project name, specify a location, and select Create. (Имя Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ автоматичСски устанавливаСтся Π² соотвСтствии с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.)(The Solution name is automatically set to match the Project name.)

  5. Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ откроСтся Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€Π°Π²ΠΎΠΉ области.The new project opens in Solution Explorer in the right pane. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ° пуст, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ содСрТит Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².The project is empty at this point because it contains no other files.

Вопрос. Π’ Ρ‡Π΅ΠΌ прСимущСство создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Visual Studio для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python?Question: What’s the advantage of creating a project in Visual Studio for a Python application?

ΠžΡ‚Π²Π΅Ρ‚. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Python ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ, Π½ΠΎ такая простая структура ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ прилоТСния ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ автоматичСски сгСнСрированныС Ρ„Π°ΠΉΠ»Ρ‹, JavaScript для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΒ Ρ‚.Β Π΄.Answer: Python applications are typically defined using only folders and files, but this simple structure can become burdensome as applications become larger and perhaps involve auto-generated files, JavaScript for web applications, and so on. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Visual Studio ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этими слоТными ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.A Visual Studio project helps manage this complexity. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ (Ρ„Π°ΠΉΠ» .pyproj) опрСдСляСт всС исходныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ содСрТимого, связанныС с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, содСрТит свСдСния ΠΎ сборкС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с систСмами управлСния вСрсиями ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ логичСских ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².The project (a .pyproj file) identifies all the source and content files associated with your project, contains build information for each file, maintains the information to integrate with source-control systems, and helps you organize your application into logical components.

Вопрос. Π§Ρ‚ΠΎ прСдставляСт собой «Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отобраТаСтся Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ?Question: What is the «solution» shown in Solution Explorer?

ΠžΡ‚Π²Π΅Ρ‚. РСшСниС Visual Studio являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими связанными ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ. Π’ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ хранятся ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².Answer: A Visual Studio solution is a container that helps you manage for one or more related projects as a group, and stores configuration settings that aren’t specific to a project. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ ссылки, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ запускС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (прилоТСния Python) автоматичСски создаСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ C++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Python).Projects in a solution can also reference one another, such that running one project (a Python app) automatically builds a second project (such as a C++ extension used in the Python app).

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ FlaskInstall the Flask library

Π’Π΅Π±-прилоТСния Π½Π° Python ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· мноТСства доступных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… процСссов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Π²Π΅Π±-запросов ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ².Web apps in Python almost always use one of the many available Python libraries to handle low-level details like routing web requests and shaping responses. Π‘ этой Ρ†Π΅Π»ΡŒΡŽ Visual Studio прСдоставляСт мноТСство шаблонов для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ этого руководства.For this purpose, Visual Studio provides a variety of templates for web apps, one of which you use later in this Quickstart.

А сСйчас Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ инструкции ΠΏΠΎ установкС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Flask Π² глобальном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Visual Studio.Here, you use the following steps to install the Flask library into the default «global environment» that Visual Studio uses for this project.

  1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡƒΠ·Π΅Π» ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ срСду ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Expand the Python Environments node in the project to see the default environment for the project.

  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Python.Right-click the environment and select Install Python Package. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² ΠΎΠΊΠ½Π΅ ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ Python.This command opens the Python Environments window on the Packages tab.

  3. Π’ ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Π΄ΠΈΡ‚Π΅ flask ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ pip install flask from PyPI.Enter «flask» in the search field and select pip install flask from PyPI. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ запросы Π½Π° ΠΏΡ€Π°Π²Π° администратора ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° Ρ…ΠΎΠ΄ΠΎΠΌ выполнСния Π² ΠΎΠΊΠ½Π΅ Π’Ρ‹Π²ΠΎΠ΄ Π² Visual Studio.Accept any prompts for administrator privileges and observe the Output window in Visual Studio for progress. (Запрос Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² выводится Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠ°ΠΏΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для глобальной срСды находится Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ области, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ C:\Program Files.)(A prompt for elevation happens when the packages folder for the global environment is located within a protected area like C:\Program Files.)

  1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡƒΠ·Π΅Π» ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ срСду ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Expand the Python Environments node in the project to see the default environment for the project.

  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Python… . Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ (PyPI) Π² ΠΎΠΊΠ½Π΅ ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ Python.Right-click the environment and select Manage Python Packages…. This command opens the Python Environments window on the Packages (PyPI) tab.

  3. Π’ ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Π΄ΠΈΡ‚Π΅ «flask». Enter «flask» in the search field. Если Flask отобраТаСтся ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π΅ΠΌ поиска, этот шаг ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.If Flask appears below the search box, you can skip this step. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: pip install flask.Otherwise select Run command: pip install flask. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ запросы Π½Π° ΠΏΡ€Π°Π²Π° администратора ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° Ρ…ΠΎΠ΄ΠΎΠΌ выполнСния Π² ΠΎΠΊΠ½Π΅ Π’Ρ‹Π²ΠΎΠ΄ Π² Visual Studio.Accept any prompts for administrator privileges and observe the Output window in Visual Studio for progress. (Запрос Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² выводится Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠ°ΠΏΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для глобальной срСды находится Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ области, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ C:\Program Files.)(A prompt for elevation happens when the packages folder for the global environment is located within a protected area like C:\Program Files.)

  1. ПослС установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° появится Π² срСдС Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ Python.Once installed, the library appears in the environment in Solution Explorer, which means that you can make use of it in Python code.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ВмСсто установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² глобальном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ «Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Instead of installing libraries in the global environment, developers typically create a «virtual environment» in which to install libraries for a specific project. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Visual Studio ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ описано Π² ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ руководствС ΠΏΠΎ созданию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ шаблона.Visual Studio templates typically offer this option, as discussed in Quickstart — Create a Python project using a template.

Вопрос. Π“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… доступных ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… Python?Question: Where do I learn more about other available Python packages?

ΠžΡ‚Π²Π΅Ρ‚. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ страницС индСкса ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python.Answer: Visit the Python Package Index.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ΄Π°Add a code file

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.You’re now ready to add a bit of Python code to implement a minimal web app.

  1. Π’ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ > Новый элСмСнт.Right-click the project in Solution Explorer and select Add > New Item.

  2. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ элСмСнт ΠŸΡƒΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» Python, присвойтС Ρ„Π°ΠΉΠ»Ρƒ имя app.py ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.In the dialog that appears, select Empty Python File, name it app.py, and select Add. Π€Π°ΠΉΠ» автоматичСски откроСтся Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° Visual Studio.Visual Studio automatically opens the file in an editor window.

  3. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² app.py:Copy the following code and paste it into app.py:

    from flask import Flask
    
    # Create an instance of the Flask class that is the WSGI application.
    # The first argument is the name of the application module or package,
    # typically __name__ when using a single module.
    app = Flask(__name__)
    
    # Flask route decorators map / and /hello to the hello function.
    # To add other resources, create functions that generate the page contents
    # and add decorators to define the appropriate resource locators for them.
    
    @app.route('/')
    @app.route('/hello')
    def hello():
        # Render the page
        return "Hello Python!"
    
    if __name__ == '__main__':
        # Run the app server on localhost:4449
        app.run('localhost', 4449)
    
  4. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ > Новый элСмСнт отобраТаСтся ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ класс Python, ΠΏΠ°ΠΊΠ΅Ρ‚ Python, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ тСст Python, Ρ„Π°ΠΉΠ»Ρ‹ web. config ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.You may have noticed that the Add > New Item dialog box displays many other types of files you can add to a Python project, including a Python class, a Python package, a Python unit test, web.config files, and more. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, эти Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ элСмСнтов прСкрасно подходят для быстрого создания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ стандартного ΠΊΠΎΠ΄Π°.In general, these item templates, as they’re called, are a great way to quickly create files with useful boilerplate code.

Вопрос. Π“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Flask?Question: Where can I learn more about Flask?

ΠžΡ‚Π²Π΅Ρ‚. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Flask. ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ руководства ΠΏΠΎ Flask.Answer: Refer to the Flask documentation, starting with the Flask Quickstart.

Запуск прилоТСнияRun the application

  1. Π’ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ„Π°ΠΉΠ» app.py ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Set as startup file (Π—Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» запуска).Right-click app.py in Solution Explorer and select Set as startup file. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ΄Π° задаСтся ΠΊΠ°ΠΊ запускаСмый Π² Python ΠΏΡ€ΠΈ запускС прилоТСния.This command identifies the code file to launch in Python when running the app.

  2. Π’ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Бвойства.Right-click the project in Solution Explorer and select Properties. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ присвойтС свойству НомСр ΠΏΠΎΡ€Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4449.Then select the Debug tab and set the Port Number property to 4449. Благодаря этому Π² Visual Studio Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ localhost:4449, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ соотвСтствиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ app.run Π² ΠΊΠΎΠ΄Π΅.This step ensures that Visual Studio launches a browser with localhost:4449 to match the app.run arguments in the code.

  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠžΡ‚Π»Π°Π΄ΠΊΠ° > Запуск Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ (CTRL+F5), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.Select Debug > Start Without Debugging (Ctrl+F5), which saves changes to files and runs the app.

  4. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с сообщСниСм Запуск Π² https://localhost:4449, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° откроСтся ΡƒΠ·Π΅Π» localhost:4449 ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС «Hello, Python!»A command window appears with the message Running in https://localhost:4449, and a browser window should open to localhost:4449 where you see the message, «Hello, Python!» Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Ρ‚Π°ΠΊΠΆΠ΅ отобразится запрос GET с состояниСм 200.The GET request also appears in the command window with a status of 200.

    Если Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ открываСтся автоматичСски, запуститС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ localhost:4449.If a browser does not open automatically, start the browser of your choice and navigate to localhost:4449.

    Если Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ отобраТаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ интСрактивная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Python ΠΈΠ»ΠΈ Ссли это ΠΎΠΊΠ½ΠΎ появляСтся Π½Π° экранС ΠΈ сразу исчСзаСт, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» app.py Π±Ρ‹Π» Π·Π°Π΄Π°Π½ Π² качСствС запускаСмого Π½Π° шагС 1 Π²Ρ‹ΡˆΠ΅.If you see only the Python interactive shell in the command window, or if that window flashes on the screen briefly, ensure that you set app.py as the startup file in step 1 above.

  5. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ localhost:4449/hello, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ для рСсурса /hello.Navigate to localhost:4449/hello to test that the decorator for the /hello resource also works. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ снова отобразится запрос GET с состояниСм 200.Again, the GET request appears in the command window with a status of 200. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… URL-адрСсов. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ для Π½ΠΈΡ… отобраТаСтся ΠΊΠΎΠ΄ состояния 404.Feel free to try some other URL as well to see that they show 404 status codes in the command window.

  6. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.Close the command window to stop the app, then close the browser window.

Вопрос. Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ «Π—апуск Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ» ΠΈ «ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ»?Question: What’s the difference between the Start Without Debugging command and Start Debugging?

ΠžΡ‚Π²Π΅Ρ‚. Команда ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² контСкстС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Visual Studio, Ρ‡Ρ‚ΠΎ позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ построчноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.Answer: You use Start Debugging to run the app in the context of the Visual Studio debugger, allowing you to set breakpoints, examine variables, and step through your code line by line. Π‘ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.Apps may run slower in the debugger because of the various hooks that make debugging possible. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Запуск Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ использовалась командная строка. ΠŸΡ€ΠΈ этом отсутствуСт контСкст ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ запускаСтся автоматичСски, ΠΈ выполняСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ URL-адрСсу, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠžΡ‚Π»Π°Π΄ΠΊΠ°.Start Without Debugging, in contrast, runs the app directly as if you ran it from the command line, with no debugging context, and also automatically launches a browser and navigates to the URL specified in the project properties’ Debug tab.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шагиNext steps

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ с запуском вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прилоТСния Python ΠΈΠ· Visual Studio, Π² процСссС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ознакомились с особСнностями использования Visual Studio Π² качСствС срСды IDE для Python!Congratulations on running your first Python app from Visual Studio, in which you’ve learned a little about using Visual Studio as a Python IDE!

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² этом руководствС инструкции довольно ΠΎΠ±Ρ‰ΠΈΠ΅, Π²Ρ‹, вСроятно, догадались, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.Because the steps you followed in this Quickstart are fairly generic, you’ve probably guessed that they can and should be automated. Вакая автоматизация выполняСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ шаблонов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Visual Studio.Such automation is the role of Visual Studio project templates. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ созданию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Python Π½Π° основС шаблона, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ создаСтся Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° созданноС Π²Π°ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π½ΠΎ с мСньшим количСством шагов.Go through Quickstart — Create a Python project using a template for a demonstration that creates a web app similar to the one you created in this article, but with fewer steps.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΡƒ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Python Π² Visual Studio, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ использованиС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Git, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£Ρ‡Π΅Π±Π½ΠΈΠΊ. Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Python Π² Visual Studio.To continue with a fuller tutorial on Python in Visual Studio, including using the interactive window, debugging, data visualization, and working with Git, go through Tutorial: Get started with Python in Visual Studio.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с возмоТностями Visual Studio ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅ ссылкам.To explore more that Visual Studio has to offer, select the links below.

Как дСлаСтся Π½Π° Python Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: основныС особСнности языка

ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°: послС создания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… бэкСндов Π½Π° PHP ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ сСбя программист Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ этому языку. ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Java ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π². Но Ρ‚ΠΎ, ΠΊΡ‚ΠΎ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π° Python Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡƒΠΆΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π―Π·Ρ‹ΠΊ развиваСтся ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Π΅Π³ΠΎ коммСрчСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ сСбя с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. БСгодня ΠΌΡ‹ расскаТСм, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆ для web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ прСпятствия ΠΏΠΎΠ΄ΡΡ‚Π΅Ρ€Π΅Π³Π°ΡŽΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Python, ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π΅Π»ΠΈ

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ годится для web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… экспСримСнтов Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… областях, Python считаСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Β«Ρ„Ρ€ΠΎΠ½Ρ‚Π°Β» сайтов, создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с ΠΌΠ°Π»Π²Π°Ρ€ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ. Вся ΡΡƒΡ‚ΡŒ программирования Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС.

Python β€” ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ язык для web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Π·Π°Π΄ΡƒΠΌΠ°Π½ Π² 1980-ΠΎΠΌ, Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π±Π»ΠΈΠΆΠ΅ ΠΊ дСвяностым. Π•Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€, Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россум, Ρ…ΠΎΡ‚Π΅Π» ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ язык ABC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался для обучСния, Π½ΠΎ ΠΈΠΌΠ΅Π» ряд нСдостатков. Π’ ΠΈΡ‚ΠΎΠ³Π΅, ΠΈΠ· Ρ…ΠΎΠ±Π±ΠΈ Россума получился высокоуровнСвый скриптовый PL, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° поднялась Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Если ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ являСтся Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Π² ΠΏΠ»Π°Π½Π΅ создания сайтов, Ρ‚ΠΎ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ вСсь процСсс ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, это язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ являСтся плюсом. Π‘Π΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

JavaScript. Быстрый старт

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы JavaScript Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎ созданию Π²Π΅Π±-прилоТСния

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

Π£ языка Π΄Π°ΠΆΠ΅ Π΅ΡΡ‚ΡŒ свой манифСст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ философиСй. Π•Π΅ написал Π’ΠΈΠΌ ΠŸΠ΅Ρ‚Π΅Ρ€Ρ. НСкоторыС ΠΈΠ· Π»ΠΎΠ·ΡƒΠ½Π³ΠΎΠ² Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.

Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных Π»ΠΎΠ·ΡƒΠ½Π³ΠΎΠ² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° Π΅Π³ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ сдСлали ΡƒΠΏΠΎΡ€ Π½Π΅ Π½Π° мощности самого ΠΊΠΎΠ΄Π°, Π° Π½Π° продуктивности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ язык ΠΎΡ‚ PHP. На «прСпроцСссорС» Π»ΡƒΡ‡ΡˆΠ΅ всСго получаСтся ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ лишь Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚. Π”Π°ΠΆΠ΅ самая слоТная систСма расчСта Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ понятнСС, Ρ‡Π΅ΠΌ стандартныС прилоТСния Π½Π° Java ΠΈ Π‘-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ…. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ, Π΄Π°Π»Π΅ΠΊΠΈΠΉ ΠΎΡ‚ программирования Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, смоТСт ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ.

Для Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния сСти

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ язык web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ: скорСС всСго, ΠΎΠ½ просто ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΈ Π΅Π³ΠΎ нСдостатки извСстны всСм. Но, нСсмотря Π½Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ, ΠΎ слабых сторонах Python Π²Ρ‹ ΡƒΡΠ»Ρ‹ΡˆΠΈΡ‚Π΅ нСчасто. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ вписался Π² соврСмСнный Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π² сторону web. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Π΅Ρ€Π΅Π· нСсколько Π»Π΅Ρ‚ Π΅Π³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ с Π²Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

Π˜Ρ‚Π°ΠΊ, Ρƒ языков Java, Π‘, ΠΈ PHP Π΅ΡΡ‚ΡŒ своя аудитория ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ свои ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ставят Π² ΡƒΠΏΡ€Π΅ΠΊ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅. Но ΠΏΡ€Π°Π²Π΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ…ΠΎΡ‚Π½ΠΎ вСрят Π² Python, создавая Π½Π° основу для своих бизнСс-процСссов. И хотя Ρƒ основного ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π° Π² этой сфСрС (Java) ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅, ΠŸΠ°ΠΉΡ‚ΠΎΠ½ Π±Π΅Ρ€Π΅Ρ‚ своС благодаря простотС написанной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π•Π΅ Π»Π΅Π³Ρ‡Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ошибки. Ну, Π° Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Ρ‚ΠΎ здСсь врСмя исчисляСтся ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌΠΈ. НС сумСл ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ сСрвСр, ΠΈ Π²ΠΎΡ‚ β€” ΡŽΠ·Π΅Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Ρƒ.

Π’ Python вСрят Ρ‚Π°ΠΊΠΈΠ΅ Π°ΠΊΡƒΠ»Ρ‹ бизнСса, ΠΊΠ°ΠΊ Google. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΡ… ΠΊΡ€ΠΎΡƒΠ»Π΅Ρ€ Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅. Но здСсь ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΠ·ΠΌ сыграл свою Ρ€ΠΎΠ»ΡŒ: Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π΅Π³ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создали с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘++. ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, такая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, ΠΊΠ°ΠΊ Π½Π° Google, Π½Π΅ ΠΆΠ΄Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” создавайтС Π½Π° Python ΠΈ Π½Π΅ почувствуСтС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, сСрвис PayPal Ρ‚ΠΎΠΆΠ΅ создан Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, ΠΈ это Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΅ΠΌΡƒ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΡ€Ρƒ своС быстродСйствиС. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, извСстныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Instagram ΠΈ Spotify Ρ‚ΠΎΠΆΠ΅ созданы Π½Π° основС Python (дСсктоп-вСрсии).

Но Π³Π΄Π΅ ΠΈ ΠΏΡ€Π°Π²Π΄Π° web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python Ρ…ΠΎΡ€ΠΎΡˆΠ°, Ρ‚Π°ΠΊ это Π² создании Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ статистичСского Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°. Для этого Ρƒ ΠŸΠΈΡ‚ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° β€” Dash. Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² консоли ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ своСго аналитичСского Π³ΠΈΠ³Π°Π½Ρ‚Π°. ΠŸΠΎΡ‡Ρ‚ΠΈ всС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ сСрвисы, Π²Ρ€ΠΎΠ΄Π΅ расчСта популяции людСй ΠΈΠ»ΠΈ роста курса инфляции, созданы Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Dash. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ созданныС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΠ»Π°Π½Π΅ интСрфСйса, Π±ΡƒΠ΄Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с CSS.

JavaScript. Быстрый старт

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы JavaScript Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎ созданию Π²Π΅Π±-прилоТСния

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Β«Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈΒ» выглядСли Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΅Ρ‰Π΅ ΠΈ оснащСна элСмСнтами Graph. Как ΠΈ понятно ΠΈΠ· названия, ΠΎΠ½Π° ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ всСми Π²ΠΈΠ΄Π°ΠΌΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½

Π’ Ρ†Π΅Π»ΠΎΠΌ, Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, насколько Ρ…ΠΎΡ€ΠΎΡˆ Python для web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π•Π³ΠΎ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, ΠΈ ΠΎΠ½ эффСктивСн. Π’Π°ΠΊ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΠΌ всС Π² список прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с этим языком программирования:

ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС. Π­Ρ‚ΠΎ всСгда плюс, ΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎ Π½Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ. ВсС Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Python, Π΄Π°ΠΆΠ΅ ДиснСй. БлСдствиСм этого Ρ„Π°ΠΊΡ‚Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΎ Π½Π΅ΠΌ ΡƒΠΆΠ΅ извСстно. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, тотчас ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π² поисковик: скорСС всСго, Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΡƒΠΆΠ΅ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π». К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ практичСски любого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для сСбя;

Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ. Бамая извСстная ΠΈ каноничСская β€” это CPython, рСализация Π½Π° Π‘. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, написанный Π½Π° Π½Π΅ΠΌ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ взаимодСйствуСт с Π‘, ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ этого языка Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ΠΎ ΠΆΠ΅ самоС касаСтся ΠΈ языка Java. БущСствуСт ΠΈ рСализация Π½Π° Π½Π΅ΠΌ β€” Jython. Π’Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² масса, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ взаимодСйствия ΠŸΠΈΡ‚ΠΎΠ½Π° с Android ΠΈ iOS;

простота языка. НСт, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Python β€” это просто. Но Ссли ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ языки с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ возмоТностями, Ρ‚ΠΎ ΠΎΠ½ явно Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ всСх. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π½ΠΎ ΠΈ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ области, Π³Π΄Π΅ спСциалисты Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… ΠΏΠΎΠ·Π½Π°Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. НапримСр, Ссли Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π°ΡΡ‚Ρ€ΠΎΠ½ΠΎΠΌΠΈΡŽ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ слоТныС вычислСния, Ρ‚ΠΎ Java Π²Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚. Бинтаксис Π² Python ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ нСсСт Π² сСбС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ слоТности;

ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. НС ΡƒΠ΄ΠΈΠ²Π»ΡΠΉΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ этот ΠΏΡƒΠ½ΠΊΡ‚ Π² спискС нСдостатков. На самом Π΄Π΅Π»Π΅, здСсь всС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‡Π΅ΠΌ Java ΠΈΠ»ΠΈ Π‘, ΠΎΠ½ всС ΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ быстр, Ρ‡Π΅ΠΌ JavaScript, PHP ΠΈΠ»ΠΈ Ruby. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π·Π° послСдниС нСсколько Π»Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ PyPy сумСл Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Β«ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒΒ» ΠŸΠΈΡ‚ΠΎΠ½.

Но ΠΈΠ· всСго этого списка, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ аспСктом, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, являСтся простота. Благодаря Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ€ΠΎΠ³Ρƒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ присоСдиняСтся большС людСй. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π°ΠΆΠ΅ дСтскиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π΅Ρ‚Π΅ΠΉ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. А Ссли ваш Ρ€Π΅Π±Π΅Π½ΠΎΠΊ Π² срСднСй школС Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, Ρ‚ΠΎΠ³Π΄Π° ΠΊ Π΅Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ Ρ…ΠΎΡ‡Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π² ΠΆΠΈΠ·Π½ΠΈ.

ВсС ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΎ!

ИмСнно с этим Π»ΠΎΠ·ΡƒΠ½Π³ΠΎΠΌ хочСтся Π½Π°Ρ‡Π°Ρ‚ΡŒ рассказ ΠΎ нСдостатках Python. Π―Π·Ρ‹ΠΊ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ быстро развиваСтся, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· нСсколько Π»Π΅Ρ‚ наши слова Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Активно проводится Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСгодня ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° Python.

Как ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π»ΠΈ, ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ СдинствСнной ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. ИмСнно Π½Π° Π½Π΅ΠΉ завязаны всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСдостатки. БущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΡ…, ΠΏΠΎΡ‡Π΅ΠΌΡƒ этот язык Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π΅Π³ΠΎ статичСскиС ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒΡ (Π‘-сСмья ΠΈ Java). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ настаиваСт Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ всСму Gil β€” Global Interpreter Lock. И это ΠΏΡ€Π°Π²Π΄Π°: Π·Π°ΠΌΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΠ΅Ρ‚, ΠΎΠ½ ΠΈΡ… освобоТдаСт. Π­Ρ‚Π° тСхнология ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ программисты ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ массу Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π° Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии языка сам процСсс Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

Вторая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ. Когда-Ρ‚ΠΎ это Π±Ρ‹Π» инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. Но Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° динамичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ слоТно. ΠŸΠΎΡ‚ΠΎΠΌΡƒ web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π°. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Dropbox, Ρ€Π΅ΡˆΠ°ΡŽΡ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ благодаря спСцифичСским рСализациям β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Pyston.

На этом Ρƒ нас всС! Π£Ρ‡ΠΈΡ‚Π΅ Python! Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Python!

JavaScript. Быстрый старт

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы JavaScript Π½Π° практичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎ созданию Π²Π΅Π±-прилоТСния

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-прилоТСния Π½Π° PHP

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° PHP Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ Π½Π° сайтС

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python | WebCase

ΠŸΠΈΡ‚ΠΎΠ½ цСнят Π·Π° Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. На Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ срок ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ насущныС Π·Π°Π΄Π°Ρ‡ΠΈ бизнСса.

По Π΄Π°Π½Π½Ρ‹ΠΌ BuiltWith, Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ построСно ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². На Π½Ρ‘ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ сайтов. ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… языках – HTML, CSS ΠΈ JavaScript Π² связкС с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². НапримСр, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Vue.js.

ΠŸΠ»ΡŽΡΡ‹ Python

Π“Π»Π°Π²Π½Ρ‹Π΅ прСимущСства ΠŸΠΈΡ‚ΠΎΠ½Π° – ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ΅ сообщСство программистов ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Благодаря лаконичности языка ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ дСшСвлС ΠΈ быстрСС. А ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ позволяСт Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½ΠΎ ΠΈ ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ Π² Тизнь ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ.

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ сообщСство

ΠŸΠΈΡ‚ΠΎΠ½ – самый быстрорастущий язык программирования, согласно опросу ΠΎΡ‚ Stack Overflow.

По индСксу PYPL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сравниваСт количСство запросов Π½Π° Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ Π² Π“ΡƒΠ³Π», ΠŸΠΈΡ‚ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ с большим ΠΎΡ‚Ρ€Ρ‹Π²ΠΎΠΌ

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ―Π·Ρ‹ΠΊΠ”ΠΎΠ»ΡΠ’Ρ€Π΅Π½Π΄
1Python31,02%+2,2%
2Java16,38%-2,38%
3JavaScript8,41%+0,4%
4C#6.52 %0.6 %
5PHP5,83-0.4 %
6C/C++5.56 %-0.4 %
7R4.26 %/td>+0.4 %
8Objective-C3.48 %+0,8%
9Swift2.37 %-0.1 %
10TypeScript1,9%+0,1%

АналогичныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² индСксах ΠΎΡ‚ TIOBE ΠΈ Π‘ΡŽΡ€ΠΎ статистики Ρ‚Ρ€ΡƒΠ΄Π° БША. ΠŸΠΈΡ‚ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1–3 мСсто Π²ΠΎ всСх Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°Ρ… популярности языков.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ?

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ языка ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  • Π’ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ – ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ качСства: ΠŸΠΈΡ‚ΠΎΠ½ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков.
  • Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΡ€ΠΈΡ‚ΠΎΠΊ ΠΌΠΎΠ»ΠΎΠ΄Ρ‹Ρ… спСциалистов Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚ΠΎΠΌ ΠΊΠ°Π΄Ρ€ΠΎΠ² для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ обновлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
  • МногомиллионноС сообщСство ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ постоянно Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ язык.
  • Π‘ΠΎΠ»ΡŒΡˆΠ΅ людСй занимаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для всСвозмоТных тСхничСских ΠΈ бизнСс-Π·Π°Π΄Π°Ρ‡.

Чистый синтаксис ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ

Бинтаксис ΠŸΠΈΡ‚ΠΎΠ½Π° прост, ΠΎΠ½ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ. Π›Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ, Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ языка экономит врСмя программистов ΠΈ дСньги Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠ².

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΈΠ½ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€ΠΈΡΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ, Π½Π° Java ΠΈ Python.

ΠŸΡ€ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠ΄ ΠŸΠΈΡ‚ΠΎΠ½Π° Π² Ρ€Π°Π·Ρ‹ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠŸΠΈΡ‚ΠΎΠ½Π° ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ программиста ΠΈ Π΄Π°Π΅Ρ‚ доступ ΠΊ систСмному Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, написанных Π½Π° C.

Под Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Они ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ всС сфСры Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – ΠΎΡ‚ e-commerce ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… систСм Π΄ΠΎ машинного обучСния ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ статистики.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, основанных Π½Π° сборС ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠŸΠΈΡ‚ΠΎΠ½
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ MVP

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°ΡŽΡ‚ ΠŸΠΈΡ‚ΠΎΠ½ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈ MVP – ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ТизнСспособных ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ².

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠŸΠΈΡ‚ΠΎΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΠΈΠ΄Π±Π΅ΠΊ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ бизнСс-идСю.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ Π½Π° основС ΠΆΠΈΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи.

ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ
Π‘ вСрсии 3.5 Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ асинхронный ΠΊΠΎΠ΄. АсинхронноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы Π²ΠΎ врСмя оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ сСрвСра.

Π’Π°ΠΊ удаСтся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ простоя прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запросов.

Асинхронная модСль ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ исходя ΠΈΠ· нашСго ΠΎΠΏΡ‹Ρ‚Π° ΠŸΠΈΡ‚ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°ΠΆΠ΅ для высоконагруТСнных сайтов ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТных запросов.
Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками
Python Ρ…ΠΎΡ€ΠΎΡˆΠΎ интСгрируСтся с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками. НапримСр, Π² исходный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π° C++.

C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠŸΠΈΡ‚ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Β«ΡΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒΒ» Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

Open-Source лицСнзия
Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсплатно. А открытая лицСнзия способствуСт быстрому Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ языка силами Π²ΠΎΠ»ΠΎΠ½Ρ‚Π΅Ρ€ΠΎΠ² со всСго ΠΌΠΈΡ€Π°.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° динамичСского языка
Для ΠŸΠΈΡ‚ΠΎΠ½Π° Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ всС прСимущСства динамичСского ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ языка:

  • ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ;
  • Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ программирования Π²ΠΈΠ΄Π½Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;
  • ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ классов;
  • МСньшС ΠΊΠΎΠ΄Π° – Π·Π½Π°Ρ‡ΠΈΡ‚, Π΅Π³ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°Π·Ρ‹ компиляции ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ позволяСт быстро Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ внСсти ΠΏΡ€Π°Π²ΠΊΠΈ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Π° запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ быстрСС.

ΠœΠΈΠ½ΡƒΡΡ‹ Python

Π‘Ρ€Π΅Π΄ΠΈ минусов Python Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, слоТности Π² поискС ошибок ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΡƒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов. Рассмотрим, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· этих нСдостатков Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ присущи языку.
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
Главная вСрсия ΠŸΠΈΡ‚ΠΎΠ½Π° – CPython. Π•Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹:

  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ компиляции. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Python пСрСводятся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° Ρ…ΠΎΠ΄Ρƒ, Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ эффСктивнСС ΠΈ ускоряСт запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ сниТаСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄.
  • ДинамичСская ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° языка. ДинамичСская типизация Π΄Π΅Π»Π°Π΅Ρ‚ ΠŸΠΈΡ‚ΠΎΠ½ нСвСроятно Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π΅Ρ€Π΅Ρ‚ присвоСниС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° сСбя, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π° сниТаСтся.
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. Π’ CPython встроСн ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ – GIL. Он ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса, Π½ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ядрах.

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, всС Ρ‚Ρ€ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… тСстах. Но Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Π±-прилоТСниях Π΄Π΅Π»Π° обстоят ΠΈΠ½Π°Ρ‡Π΅.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ процСссор Ρ€Π΅Π΄ΠΊΠΎ выступаСт слабым Π·Π²Π΅Π½ΠΎΠΌ систСмы.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½ΠΈΠΆΠ΅, процСссор ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ 1 ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π·Π° 1 наносСкунду. Π­Ρ‚ΠΎ Π² ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Ρ€Π°Π· быстрыС, Ρ‡Π΅ΠΌ врСмя пСрСсылки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ процСссор Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° 100% ΠΎΡ‡Π΅Π½ΡŒ слоТно.

ИмСнно ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‡Π°Ρ‰Π΅ всСго Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΡƒΠ·ΠΊΠΈΠΌ мСстом ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ язык ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ. Она позволяСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ запросы Π²ΠΎ врСмя оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ сСрвСра. ΠŸΠΈΡ‚ΠΎΠ½ вСрсии 3.5 ΠΈ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ достаточно для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Плюс, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² SPA ΠΈ PWA прилоТСниях, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большая Ρ‡Π°ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΈ сразу загруТаСтся Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Если ΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ многопоточности, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ многопроцСссорный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ ΠŸΠΈΡ‚ΠΎΠ½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Cython.
Поиск ошибок
Π’ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сСмантичСскиС, синтаксичСскиС ошибки ΠΈ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, находятся Π²ΠΎ врСмя статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ компиляции. Π’ ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ошибок ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС запуска ΠΊΠΎΠ΄Π°.

Частично это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ подсказками Ρ‚ΠΈΠΏΠΎΠ², Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Python 3.5. Но Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования.

НСдостатки Python: Π²Ρ‹Π²ΠΎΠ΄
Π›ΠΈΡˆΡŒ Ρ‡Π°ΡΡ‚ΡŒ часто ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹Ρ… минусов ΠŸΠΈΡ‚ΠΎΠ½Π° основаны Π½Π° Ρ„Π°ΠΊΡ‚Π°Ρ….

НапримСр, НСхватка ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² – ΠΌΠΈΡ„, основанный Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ популярности языков ΠΎΡ‚ Stack Overflow ΠΈ PYPL. Π’ Π½ΠΈΡ… Python Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто с большим ΠΎΡ‚Ρ€Ρ‹Π²ΠΎΠΌ.

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ядСр ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ графичСских Π΄Π²ΠΈΠΆΠΊΠΎΠ² – Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Β«ΠΆΠ΅Π»Π΅Π·ΠΎΠΌΒ» – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ языки.

Но для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-прилоТСния, ΠŸΠΈΡ‚ΠΎΠ½ – Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€. Он позволяСт Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ минимальном объСмС ΠΊΠΎΠ΄Π°.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки Django

Когда говорят ΠΎ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° Django. По Π΄Π°Π½Π½Ρ‹ΠΌ SimilarTech, 63% сайтов Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ построСны Π½Π° этом Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅.

Django прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… инструмСнтов для создания всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²Π΅Π±-прилоТСния.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Django ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ ΠΈΠ΄Π΅ΠΈ Π΄ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.
  • Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ Django входят ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ инструмСнты Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: ORM, миграция Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ„ΠΎΡ€ΠΌΡ‹, Π°Π΄ΠΌΠΈΠ½ панСль. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими функциями Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Π”ΠΆΠ°Π½Π³ΠΎ β€” Π»Π΅Π³ΠΊΠΎ настраиваСмый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. ВмСсто стандартной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ORM ΠΈ систСмы шаблонов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свои инструмСнты.
  • Админ панСль ΠΈ аутСнтификация Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ».
  • ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ прилоТСния. К ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Π½Π° Django ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
  • Π‘Π°ΠΌΠΎΠ΅ большоС сообщСство срСди всСх Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠŸΠΈΡ‚ΠΎΠ½Π°.
  • АрхитСктура. Π”ΠΆΠ°Π½Π³ΠΎ слСдуСт ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρƒ проСктирования МодСль-Π’ΠΈΠ΄-ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (MVC). Он ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π΅Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π² зависимости ΠΎΡ‚ контСкста.
  • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ. Django ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания высоконагруТСнных сайтов с большим Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ.
  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Django ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² Π°Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ SQL-ΠΊΠΎΠ΄Π° ΠΈ мСТсайтовых ΠΏΠΎΠ΄Π΄Π΅Π»ΠΎΠΊ запросов.
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ API. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° инструмСнтария для создания API: REST API ΠΈ GraphQL.
  • DRF, ΠΈΠ»ΠΈ Django REST Framework, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… API. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RESTful API ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ сСрвСру ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ. НапримСр, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Π½Π° Vue, ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния для Android ΠΈ iOS.Β 
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация; ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΈ рСсурсов для изучСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – Django Book.

НСдостатки

  • ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. Из-Π·Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства встроСнных возмоТностСй Django слоТнСС ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ, Ρ‡Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.
  • Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с простыми трСбованиями Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ.
  • Бтандартная Django ORM ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π² Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными запросами ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… ORM, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SQLAlchemy, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π°Π²Ρ‹ΠΊΠΎΠ².

Как Π²ΠΈΠ΄Π½ΠΎ, минусы Django вСсьма условны. Π­Ρ‚ΠΎ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π±Π΅Π· ярко Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… слабых сторон. Π§Π΅ΠΌ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ.

Python ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ сравним ΠŸΠΈΡ‚ΠΎΠ½ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками для бэкСнда. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° чистых языках Π²Π΅Π±-прилоТСния ΠΏΠΈΡˆΡƒΡ‚ Ρ€Π΅Π΄ΠΊΠΎ, Π±ΡƒΠ΄Π΅ΠΌ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ особСнности Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².
Python ΠΈΠ»ΠΈ PHP
PHP самый популярный сСрвСрный язык. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° 78% всСх сайтов. Π­Ρ‚ΠΎ бэкСнд язык популярных CMS – WordPress, Joomla ΠΈ Drupal. А Π½Π°Π±ΠΎΡ€ LAMP (Linux, Apache, MySQL, PHP) прСдустановлСн ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° всС хостинги.

Π§Π΅ΠΌ PHP Π»ΡƒΡ‡ΡˆΠ΅ Python

  • Много Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ – CMS ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, простыС сайты ΠΈΠ»ΠΈ прилоТСния с шаблонной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° PHP ΠΈ WordPress. Π­Ρ‚ΠΎ быстрСС ΠΈ дСшСвлС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с нуля.
  • Π’ PHP 7 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ добились Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΠ΅ ΠΊ скорости;
  • PHP ΠΏΡ€ΠΎΡ‰Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° MacOS X ΠΈ Windows.

Π§Π΅ΠΌ PHP Ρ…ΡƒΠΆΠ΅ Python

  • ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ PHP-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠ°Π΄Π°Π΅Ρ‚. Если этот Ρ‚Ρ€Π΅Π½Π΄ продолТится, Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… PHP-программистов. ΠŸΠΈΡ‚ΠΎΠ½Ρƒ такая пСрспСктива Π½Π΅ Π³Ρ€ΠΎΠ·ΠΈΡ‚.
  • МСнСС удобная Ρ€Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ;
  • Π‘ΠΎΠ»ΡŒΡˆΠ΅ извСстных уязвимостСй;
  • НС Ρ‚Π°ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСдах Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅;
  • ДокумСнтация с систСмой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ;
  • Много тСхничСских ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ;
  • Узкая сфСра примСнСния – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для Π²Π΅Π±Π°.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ: Django vs Laravel
Laravel – основной Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для PHP. Он достаточно ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½, Π½ΠΎ уступаСт Π”ΠΆΠ°Π½Π³ΠΎ ΠΏΠΎ количСству Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, скорости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ бСзопасности Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нСслоТный сайт с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ – ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ CMS Π½Π° PHP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ВордпрСсс. Для Π±ΠΎΠ»Π΅Π΅ слоТных, нСстандартных ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠŸΠΈΡ‚ΠΎΠ½.
Python ΠΈΠ»ΠΈ Java
Π£ Java ΠΈ Python ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ. Оба языка – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅, кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅, с мноТСством Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
Π§Π΅ΠΌ Java Π»ΡƒΡ‡ΡˆΠ΅ Python

  • Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ история использования Π² Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» (JIT) ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ;
  • ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Android, наряду с Kotlin.

Π§Π΅ΠΌ Java Ρ…ΡƒΠΆΠ΅ Python

  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… трСбованиях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° Java длятся дольшС;
  • Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². НуТно ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ большС часов Ρ€Π°Π±ΠΎΡ‚Ρ‹ программистов;
  • JIT-компиляция замСдляСт запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;
  • Π‘ΠΎΠ»Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΠΊΠΎΠ΄ слоТнСС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ;
  • Π‘Π»ΠΎΠΆΠ½Π΅Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ: Spring vs Django
Spring – Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Но это ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ большС ΠΌΠΈΠΊΡ€ΠΎΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Django, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Π±ΠΎΠ»Π΅Π΅ стандартизированный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с мноТСством Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Spring Ρ‚Π°ΠΊΠΆΠ΅ уступаСт Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΆΠ½Ρ‹Ρ… аспСктах:

  • Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти;
  • МСньшС возмоТностСй для создания Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-интСрфСйсов;
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ инструмСнт управлСния, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Django Admin.

Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
Бвязка Python ΠΈ Django Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² компактности ΠΊΠΎΠ΄Π° ΠΈ скорости создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Java часто Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² экосистСму старых legacy-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Java.
Python ΠΈΠ»ΠΈ JavaScript / Node.js
JavaScript ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π½ΠΎ ΠΈ Π½Π° сСрвСрС. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ срСда Node.js, часто Π² сочСтании с бэкСнд-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Express. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ сравнСнии ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ вСсь стСк – JavaScript / Node / Express.
Π§Π΅ΠΌ JavaScript Π»ΡƒΡ‡ΡˆΠ΅ Python

Node.js построСна Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ Π₯Ρ€ΠΎΠΌΠ° – Google V8. V8 ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° счСт JIT-компиляции JavaScript Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π•ΡΡ‚ΡŒ ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π³Π΄Π΅ ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚, ΠΈ бэк ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС, Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈΒ  фулстСк-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Но Π½Π° самом Π΄Π΅Π»Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ JavaScript ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ довольно сильно. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Angular ΠΈ Π½Π° Node – это Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… профСссии. И Π½Π°ΠΉΡ‚ΠΈ программиста с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ JavaScript слоТнСС, Ρ‡Π΅ΠΌ спСциалиста ΠΏΠΎ Python.
Π§Π΅ΠΌ JavaScript Ρ…ΡƒΠΆΠ΅ Python

  • JavaScript ΠΏΡ€ΠΎΡˆΠ΅Π» ΠΌΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ часто выливаСтся Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.
  • МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ Π»ΡŽΠ±ΡΡ‚ JavaScript ΠΈΠ·-Π·Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… нСсогласованностСй ΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° языка.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ: Express vs Django
Django Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, прСвосходящий Express ΠΏΠΎ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½.

Express Π΄Π°Π΅Ρ‚ лишь Π±Π°Π·ΠΎΠ²Ρ‹Π΅ инструмСнты. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ придСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° с нуля Π½Π° чистом JavaScript.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Django прСдоставляСт Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΈ систСму шаблонов Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ».
Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
«Ноду» часто Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ мСссСндТСры ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡ‡Π°Ρ‚Ρ‹. ΠŸΠΈΡ‚ΠΎΠ½ – ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ для Π»ΡŽΠ±Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.
Python ΠΈΠ»ΠΈ Go (Golang)
Π£ ΠŸΠΈΡ‚ΠΎΠ½Π° ΠΈ Π“ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ. Оба языка цСнят Π·Π° простоту синтаксиса ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Оба языка относят ΠΊ высокоуровнСвым. Π₯отя ΠŸΠΈΡ‚ΠΎΠ½ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΡƒΠ»ΡŒΡ‚Ρ€Π°-высокоуровнaΠ΅Π²Ρ‹ΠΌ.

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π“ΠΎ:

  • Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык с компиляциСй;
  • Появился ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ;
  • Π§Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π΅Π· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

Π§Π΅ΠΌ Go Π»ΡƒΡ‡ΡˆΠ΅ Python

  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Google Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π“ΠΎ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° свою ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ инфраструктуру;
  • Π’ язык ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ встроСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ асинхронного выполнСния Π·Π°Π΄Π°Ρ‡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½.

Π§Π΅ΠΌ Go Ρ…ΡƒΠΆΠ΅ Python

  • МСнСС Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ;
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Django Apps;
  • Π‘ΠΎΠ»ΡŒΡˆΠ΅ объСм ΠΊΠΎΠ΄Π°;
  • ΠŸΠΈΡ‚ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π·Ρ€Π΅Π»Ρ‹ΠΉ язык с Π³ΠΎΡ€Π°Π·Π΄ΠΎ бóльшим ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ.

Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
Π‘ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ рядовых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠŸΠΈΡ‚ΠΎΠ½ справится быстрСС ΠΈ с мСньшими Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ сокращСнноС врСмя Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ Π΄Π΅Π»Π°ΡŽΡ‚ ΠŸΠΈΡ‚ΠΎΠ½ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ².

Go, Π·Π° счСт строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ компиляции, позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ экономного использования рСсурсов Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… с ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ сСрвСров.

Благодаря возмоТностям ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠŸΠΈΡ‚ΠΎΠ½Π° ΠΈΠ½ΠΎΠ³Π΄Π° умСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° языка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python

Python – ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ тСхнология Π² нашСм стСкС. Π—Π° 6 Π»Π΅Ρ‚ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ 100 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° этом языкС – ΠΎΡ‚ слоТных сайтов Π΄ΠΎ систСм Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ бизнСса.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ 3 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° бэкСнда ΠΌΡ‹ использовали ΠŸΠΈΡ‚ΠΎΠ½ Π² сочСтании с Django.

Brok

Brok – сСрвис для ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ, ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, получСния справок ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π·Π΅ΠΌΠ»Π΅ΠΉ.


ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
  • интСрактивная ΠΊΠ°Ρ€Ρ‚Π° Π·Π΅ΠΌΠ΅Π»ΡŒΠ½Ρ‹Ρ… участков Π£ΠΊΡ€Π°ΠΈΠ½Ρ‹;
  • синхронизация с государствСнными кадастрами;
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ размСщСния ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ поиска объявлСний;
  • Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ с Ρ‡Π°Ρ‚ΠΎΠΌ ΠΈ отслСТиваниСм Π·Π°ΠΊΠ°Π·ΠΎΠ².

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Brok ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ возмоТности Django.

CRM Β«Π‘Ρ€ΠΈΠ±Π½Π° Роса»

CRM Β«Π‘Ρ€ΠΈΠ±Π½Π° роса» – систСма для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ-поставщика ΠΏΠΈΡ‚ΡŒΠ΅Π²ΠΎΠΉ Π²ΠΎΠ΄Ρ‹.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  • Π±Π°Π·Π° с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ историСй Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²;
  • интСграция с сайтом ΠΈ IP-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈΠ΅ΠΉ;
  • ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Π°Ρ бонусная систСма;
  • систСма ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€ΠΎΠ»Π΅ΠΉ.

Π§Π΅Ρ€Π΅Π· CRM ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сотрудник ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ Π½ΡƒΠΆΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ. ΠšΠ»Π°Π΄ΠΎΠ²Ρ‰ΠΈΠΊ – ΠΊ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚Ρƒ, Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ – ΠΊ финансовым показатСлям, Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ прямо Π½Π° Π²Ρ‹Π΅Π·Π΄Π΅.

ERP Local Moving Service

ERP Local Moving Service – систСма управлСния рСсурсами логистичСской ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ софта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅.


ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
  • систСма ΡƒΡ‡Π΅Ρ‚Π° Π·Π°Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹;
  • Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ показатСлями Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ;
  • опросник для сотрудников;
  • Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚;
  • элСктронный Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ERP Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ прСдприятия, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ сотрудниками, собираСт ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ статистику Π² Π²ΠΈΠ΄Π΅ наглядных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

ПослСдниС обновлСния Python

Π’ октябрС 2020 Π³ΠΎΠ΄Π° Π²Ρ‹ΡˆΠ»Π° новая вСрсия языка – Python 3.9. ОбновлСния ΠΊΠΎΡΠ½ΡƒΠ»ΠΈΡΡŒ синтаксиса, стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΈ самого процСсса выпуска Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ².

Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² послСднСй вСрсии:

  • УскорСниС Π²Ρ‹Π·ΠΎΠ²Π° встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° vectorcall;
  • Новый парсСр для синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° исходного ΠΊΠΎΠ΄Π°;
  • НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для слияния ΠΈ обновлСния словарСй;
  • НовыС строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹;
  • Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ добавлСния подсказок Ρ‚ΠΈΠΏΠΎΠ² – Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ стало ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСимущСства Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков;
  • Новый встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π±Π°Π·ΠΎΠΉ часовых Π·ΠΎΠ½;
  • Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ синтаксиса ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка.

Π‘ этой вСрсии ΠŸΠΈΡ‚ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎΠΌΡƒ выпуску ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ. Π”ΠΎ этого Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ появлялись ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 18 мСсяцСв. УмСньшСниС Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ быстрСС Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ сообщСством измСнСния.
Π’ Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 2020-Π³ΠΎ Π²Ρ‹ΡˆΠ΅Π» Python 3.9.1 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ macOS 11 Big Sur.

Π’Ρ‹Π²ΠΎΠ΄

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ практичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ бизнСса. ΠŸΡ€ΠΈ этом ΠΊΠΎΠ΄ прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π² Ρ€Π°Π·Ρ‹ мСньшС, Ρ‡Π΅ΠΌ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ быстрСС Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django стандартизируСт процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ инструмСнты для бэкСнд-программиста.

Бвязка Python ΠΈ Django идСальна для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТных сайтов, систСм Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ бизнСса ΠΈ MVP для стартапов.

Вопрос-ΠΎΡ‚Π²Π΅Ρ‚

Java или Python для вСб?
Π£ ΠΎΠ±ΠΎΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹. Python β€” Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ, прилоТСния быстрСС ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ компиляция Java ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π½ΠΎ замСдляСт старт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΏΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° Java Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Но сСйчас Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π½Π΅ мСньшС ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ‚Π½Ρ‹Ρ… Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π§Ρ‚ΠΎ быстрСС Python ΠΈΠ»ΠΈ JS?
Π’ бэкСнд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ срСда JavaScript – Node.js. Она основана Π½Π° быстром Π΄Π²ΠΈΠΆΠΊΠ΅, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. Если Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚ ошибок, ΠΈ Node.js, ΠΈ Python Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ сСбя Π² высоконагруТСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Netflix (Node) ΠΈ Reddit (Python).

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ Python для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ°Π»ΠΎ зависит ΠΎΡ‚ языка. Π›ΡƒΡ‡ΡˆΠΈΠΉ способ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг ΠΈ послСдниС вСрсии Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² Django Π΅ΡΡ‚ΡŒ встроСнныС срСдства Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ распространСнных ΡƒΠ³Ρ€ΠΎΠ·.

ΠœΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ 100 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ!

ΠŸΠΎΠ»ΡƒΡ‡ΠΈ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ ΠΎΡ‚ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ свой скрипт ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask — настоящий Python

Π’Ρ‹ написали скрипт Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π³ΠΎΡ€Π΄ΠΈΡ‚Π΅ΡΡŒ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ всСму ΠΌΠΈΡ€Ρƒ. Но ΠΊΠ°ΠΊ ? Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй Π½Π΅ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ .py . ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ вашСго скрипта Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python — ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для использования ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ.

Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ локального скрипта Python ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΌΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Flask, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ со всСм ΠΌΠΈΡ€ΠΎΠΌ.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ . Они Π΄Π°Π΄ΡƒΡ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅, Π·Π° счСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания своСго Π²Π΅Π±-прилоТСния, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ссылку Π½ΠΈΠΆΠ΅:

ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ основы

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ тСорСтичСскиС основы ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎ врСмя практичСской части этого руководства:

  • КакиС Ρ‚ΠΈΠΏΡ‹ распространСния ΠΊΠΎΠ΄Π° Python ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ созданиС Π²Π΅Π±-прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • Как ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ доставляСтся Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚
  • Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Π΅Π±-хостинг
  • КакиС хостинг-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

ΠžΡΠ²Π΅Ρ‚Π»Π΅Π½ΠΈΠ΅ этих Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Python для Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.Однако, Ссли Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π½ΠΈΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Google Cloud SDK ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию своСго Π²Π΅Π±-прилоТСния Π½Π° Python.

РаспространитС свой ΠΊΠΎΠ΄ Python

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ вашСго ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ называСтся Ρ€Π°Π·Π΄Π°Ρ‡Π΅ΠΉ . Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ сущСствуСт Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для распространСния вашСго ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с вашими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ:

  1. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python
  2. Автономная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°
  3. Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python

НиТС Π²Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ².

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ экосистСмой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python, Ρ‚ΠΎ, вСроятно, Π²Ρ‹ установили ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Python с pip . Как программист, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ свой ΠΏΠ°ΠΊΠ΅Ρ‚ Python Π½Π° PyPI, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, установив Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip :

  $ python3 -m pip install <имя-вашСго-ΠΏΠ°ΠΊΠ΅Ρ‚Π°>
  

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ свой ΠΊΠΎΠ΄ Π² PyPI, эта ΠΊΠΎΠΌΠ°Π½Π΄Π° установит ваш ΠΏΠ°ΠΊΠ΅Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ зависимости, Π½Π° любой ΠΈΠ· ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ.

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚ PyPI, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² Python ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sdist для создания исходного дистрибутива ΠΈΠ»ΠΈ колСсо Python для создания встроСнного дистрибутива для совмСстного использования с вашими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ распространСнии ΠΊΠΎΠ΄Π° ΠΎΠ½ приблиТаСтся ΠΊ исходному ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ написали, ΠΈ добавляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ для Π΅Π³ΠΎ запуска. Однако использованиС этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вашим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. МногиС люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вашСго скрипта, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ установлСнного Python ΠΈΠ»ΠΈ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с процСссами, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ нСпосрСдствСнно с вашим ΠΊΠΎΠ΄ΠΎΠΌ.

Π‘ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ — это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Автономная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΈ Ρ„ΠΎΡ€ΠΌ, ΠΈ Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² прСобразования Π²Π°ΡˆΠΈΡ… скриптов Python Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НиТС Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ Π΄Π²ΡƒΡ… возмоТностях:

  1. Упаковка ваш код
  2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ PyInstaller, py2app, py2exe ΠΈΠ»ΠΈ Briefcase, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ вашСго ΠΊΠΎΠ΄Π°.Они ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ сцСнарии Python Π² исполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π½Π΅ трСбуя ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ явного запуска ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Python.

Π₯отя ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° вашСго ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с зависимостями, ваш ΠΊΠΎΠ΄ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ просто запускаСтся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Python доступным для большСго числа людСй, создав для Π½Π΅Π³ΠΎ графичСский интСрфСйс.

Π₯отя автономная Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ доступным для Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΎΠ½Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ прСдставляСт собой прСпятствиС для людСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.ΠŸΠ΅Ρ€Π΅Π΄ запуском вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько шагов. Им Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ для своСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. НСкоторыС ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π°Ρ‚ΡŒΡΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ добСрутся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ вмСсто этого ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π²Π΅Π±-прилоТСния, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ зависят ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹ΠΌ, Ρƒ ΠΊΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ доступ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ.Π˜Ρ… ΠΊΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ сСрвСрС , Π³Π΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ входящиС запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», понятный всСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌ.

Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС языка сСрвСрной части. МногиС Π²Π΅Π±-прилоТСния Π½Π° основС Python с самого Π½Π°Ρ‡Π°Π»Π° ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π²Π΅Π±-прилоТСния ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с использованиСм Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Flask, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² этом руководствС.

Однако вмСсто описанного Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ.Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π²Ρ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ для создания Π²Π΅Π±-прилоТСния. Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ скрипт Python ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌ со всСм ΠΌΠΈΡ€ΠΎΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ доступным для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ ΠΊΡ€ΡƒΠ³Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎ Π²Π΅Π±-прилоТСниях Python

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ слоТилось Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Π΅Π±-сайты ΠΈΠΌΠ΅Π»ΠΈ фиксированный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅Π³ΠΎ эту страницу.Π­Ρ‚ΠΈ Π²Π΅Π±-страницы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ статичСскими , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡ… содСрТаниС Π½Π΅ мСняСтся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ с Π½ΠΈΠΌΠΈ взаимодСйствуСтС. ΠŸΡ€ΠΈ обслуТивании статичСской Π²Π΅Π±-страницы Π²Π΅Π±-сСрвСр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° ваш запрос, отправляя ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ содСрТимоС этой страницы, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ Π²Ρ‹ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дСйствия Π²Ρ‹ прСдприняли.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ статичСского Π²Π΅Π±-сайта ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ URL-адрСсу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±Ρ‹Π» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ сСти, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ страницам, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ссылаСтся:

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ WWW

Π’Π°ΠΊΠΈΠ΅ статичСскиС Π²Π΅Π±-сайты Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ прилоТСниями, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π΅ гСнСрируСтся динамичСски с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°.Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ статичСскиС сайты составляли вСсь Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-сайтов сСгодня ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ динамичСских Π²Π΅Π±-страниц , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚.

НапримСр, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΠΎΡ‡Ρ‚Ρ‹ позволяСт Π²Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Π’ зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… дСйствий ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, часто ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС:

ΠžΠ΄Π½ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΠΎΡ‡Ρ‚Ρ‹

Π’Π΅Π±-прилоТСния, управляСмыС Python , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ.Π’Π°Ρˆ ΠΊΠΎΠ΄ запускаСтся Π½Π° Π²Π΅Π±-сСрвСрС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ ваш Π²Π΅Π±-сайт, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вашим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ. ВсС, Ρ‡Ρ‚ΠΎ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ для взаимодСйствия с вашим ΠΊΠΎΠ΄ΠΎΠΌ, — это Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ.

Π—Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Python Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π²Π΅Π±-сайтС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно, Π½ΠΎ сущСствуСт ряд Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски заботятся ΠΎ дСталях. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Π² этом руководствС Π²Ρ‹ создадитС Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎΠ± основных процСссах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ для выполнСния вашСго ΠΊΠΎΠ΄Π° Python Π½Π° сСрвСрС ΠΈ доставки ΠΎΡ‚Π²Π΅Ρ‚Π° вашим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ» HTTP-запроса-ΠΎΡ‚Π²Π΅Ρ‚Π°

ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ динамичСского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй, ΠΈ всС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствуСт с Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ:

  1. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ°: Π‘Π½Π°Ρ‡Π°Π»Π° ваш ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ запрос ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Π±-страницы Π² вашСм Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Они ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ввСдя URL-адрСс Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

  2. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅: Π­Ρ‚ΠΎΡ‚ запрос ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²Π΅Π±-сСрвСр, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ ваш Π²Π΅Π±-сайт.

  3. Matching: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваш Π²Π΅Π±-сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для сопоставлСния запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ вашСго скрипта Python.

  4. ВыполняСтся: Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Python вызываСтся этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Когда ваш ΠΊΠΎΠ΄ запускаСтся, ΠΎΠ½ записываСт Π²Π΅Π±-страницу Π² качСствС ΠΎΡ‚Π²Π΅Ρ‚Π°.

  5. Delivering: Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° доставляСт этот ΠΎΡ‚Π²Π΅Ρ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр.

  6. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€: НаконСц, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ Π²Π΅Π±-сСрвСра. НапримСр, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΡƒΡŽΡΡ Π²Π΅Π±-страницу ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Π­Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ процСсс доставки ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π―Π·Ρ‹ΠΊ программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π° сСрвСрС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для установлСния этого соСдинСния, ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Однако концСпция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для взаимодСйствия Ρ‡Π΅Ρ€Π΅Π· HTTP запросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² , остаСтся ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ ΠΈ называСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ запрос-ΠΎΡ‚Π²Π΅Ρ‚ HTTP .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Flask справится с большСй Ρ‡Π°ΡΡ‚ΡŒΡŽ этой слоТности Π·Π° вас, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎΠ± этом процСссС.

Π§Ρ‚ΠΎΠ±Ρ‹ Flask ΠΌΠΎΠ³ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы Π½Π° сторонС сСрвСра, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ мСсто, Π³Π΄Π΅ ваш ΠΊΠΎΠ΄ Python ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² сСти. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ вашСго ΠΊΠΎΠ΄Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ для запуска Π²Π΅Π±-прилоТСния называСтся Π²Π΅Π±-хостинг , ΠΈ Π΅ΡΡ‚ΡŒ ряд ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ, Ρ‚Π°ΠΊ ΠΈ бСсплатный Π²Π΅Π±-хостинг.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ хостинг-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°: Google App Engine

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π²Π΅Π±-хостинга Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запуск ΠΊΠΎΠ΄Π° Python.МногиС ΠΈΠ· Π½ΠΈΡ… стоят Π΄Π΅Π½Π΅Π³, Π½ΠΎ Π² этом руководствС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ бСсплатный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, Π½ΠΎ всС ΠΆΠ΅ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ для настройки: Google App Engine.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Google App Engine примСняСт Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ ΠΊΠ²ΠΎΡ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния. Если вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ эти ΠΊΠ²ΠΎΡ‚Ρ‹, Google Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²Π°ΠΌ счСт. Если Π²Ρ‹ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Google Cloud, ΠΏΡ€ΠΈ рСгистрации Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ бСсплатный ΠΏΡ€ΠΎΠΌΠΎΠΊΡƒΠΏΠΎΠ½.

БущСствуСт ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… бСсплатных ΠΎΠΏΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PythonAnywhere, Repl.it ΠΈΠ»ΠΈ Heroku, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅. ИспользованиС Google App Engine даст Π²Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π½Π°Ρ‡Π°Π»ΠΎ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ развСртывания ΠΊΠΎΠ΄Π° Python Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ обСспСчиваСт баланс ΠΌΠ΅ΠΆΠ΄Ρƒ абстрагированиСм ΠΎΡ‚ слоТности ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ настройку.

Google App Engine являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Google Cloud Platform (GCP), которая управляСтся Google ΠΈ прСдставляСт собой ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², наряду с Microsoft Azure ΠΈ Amazon Web Services (AWS).

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с GCP, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС Google Cloud SDK для своСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² этом руководствС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Google App Engine.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² стандартной срСдС Python 3. Бтандартная срСда Google App Engine ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ срСду выполнСния Python 3 ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ бСсплатный ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Установка Google Cloud SDK Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ gcloud , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для развСртывания своСго Π²Π΅Π±-прилоТСния. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ установки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π°Π±Ρ€Π°Π² Π² консоли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² своСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ тСкстовый Π²Ρ‹Π²ΠΎΠ΄, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅:

  ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-Π΄Π²ΠΈΠΆΠΎΠΊ-ΠΏΠΈΡ‚ΠΎΠ½ 1.9,91
2,0.62 Π±ΠΊ
ΠΎΠ±Π»Π°ΠΊΠΎ-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅-эмулятор 2.1.0
ядро 2020.11.13
gsutil 4.55
  

Π’Π°ΡˆΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсий, вСроятно, Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, Π½ΠΎ Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° gcloud ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ваша установка ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

ИмСя Π² Π²ΠΈΠ΄Ρƒ этот ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΈ установлСнный Google Cloud SDK, Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-прилоТСния Π½Π° Python

Google App Engine Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ использовали Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания Π²Π΅Π±-прилоТСния Π² срСдС Python 3.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ настройку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свой Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Python Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Flask, являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Минимальная рСализация Flask Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Π»Π°, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если Π²Ρ‹ Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Google App Engine Π² срСдС Python 2.7, Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ процСсс Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ измСнился.

Π”Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… измСнСния Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ webapp2 Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½, ΠΈ Π²Ρ‹ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ URL-адрСса для динамичСского содСрТания Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ .yaml Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΎΠ±ΠΎΠΈΡ… этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Google App Engine Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас использования Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Python.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², поэтому ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ всС эти Ρ„Π°ΠΉΠ»Ρ‹.

НастройтС свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΉ имя, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Для этого практичСского ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ hello-app .Π’Π½ΡƒΡ‚Ρ€ΠΈ этой ΠΏΠ°ΠΏΠΊΠΈ Π²Π°ΠΌ понадобятся Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°:

  1. main.py содСрТит ваш ΠΊΠΎΠ΄ Python, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Flask.
  2. requirements.txt пСрСчисляСт всС зависимости, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  3. app.yaml ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Google App Engine Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ настройки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΅Π³ΠΎ сСрвСрС.

Π₯отя Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ большим количСством, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Π½Π΅Π΅ дСсяти строк ΠΊΠΎΠ΄Π° для всСх Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².Π­Ρ‚ΠΎ прСдставляСт собой ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ настройку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Google App Engine для любого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ вашим собствСнным ΠΊΠΎΠ΄ΠΎΠΌ Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² этом руководствС, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ссылку Π½ΠΈΠΆΠ΅:

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ просмотритС содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ², начиная с самого слоТного, main.py .

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ

main.py

main.py — это Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Flask ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для доставки вашСго ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π° Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ класс Flask Π² строкС 1, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ создаСтС экзСмпляр прилоТСния Flask Π² строкС 3:

  1 ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°
 2
 3app = Flask (__ name__)
 4
 [email protected] ("/")
 6def index ():
 7 return "ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!"
  

ПослС создания прилоТСния Flask Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Python Π² строкС 5 с ΠΈΠΌΠ΅Π½Π΅ΠΌ @ app.route , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Flask ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для соСдинСния ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ URL с ΠΊΠΎΠ΄ΠΎΠΌ, содСрТащимся Π² функциях.АргумСнт @ app.route опрСдСляСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡƒΡ‚ΠΈ URL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС являСтся ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ ( "/" ).

Код Π² строках 6 ΠΈ 7 составляСт index () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Π­Ρ‚Π° функция опрСдСляСт, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Ссли опрСдСлСнная конСчная Ρ‚ΠΎΡ‡ΠΊΠ° URL Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π•Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт, Ρ‡Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: НазваниС index () носит условный Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€.Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ главная страница Π²Π΅Π±-сайта часто называСтся index.html . ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ URL-адрСс вашСго Π²Π΅Π±-прилоТСния Π² свой Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚ΠΎΠ³Π΄Π° Flask запускаСт index () , ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ тСкст. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это всСго лишь ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΡΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ URL Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹.Однако для этой Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ этого ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΠΈ ΠΎΠ±Π½Π°Π΄Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ сообщСния ΠΎΠ± успСхС.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ

requirements.txt

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» — requirements.txt . ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Flask являСтся СдинствСнной Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, это всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ:

Если Ρƒ вашСго прилоТСния Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ зависимости, Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ„Π°ΠΉΠ» requirements.txt .

Google App Engine Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.txt , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости Python для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Π΅Π³ΠΎ настройкС Π½Π° сСрвСрС. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сдСлали Π±Ρ‹ послС создания ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды локально.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ

app.yaml

Π’Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Π°ΠΉΠ», app.yaml , ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Google App Engine Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ срСду для вашСго ΠΊΠΎΠ΄Π°. Для этого Ρ„Π°ΠΉΠ»Π° трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° строка, которая опрСдСляСт срСду выполнСния Python:

.

Π‘Ρ‚Ρ€ΠΎΠΊΠ°, показанная Π²Ρ‹ΡˆΠ΅, поясняСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ срСда выполнСния для вашСго ΠΊΠΎΠ΄Π° Python — Python 3.8. Π­Ρ‚ΠΎΠ³ΠΎ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Google App Engine ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ настройку Π½Π° своих сСрвСрах.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» app.yaml Google App Engine для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для добавлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для опрСдСлСния ΠΏΡƒΡ‚ΠΈ ΠΊ статичСскому содСрТимому вашСго прилоТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ изобраТСниям, Ρ„Π°ΠΉΠ»Π°ΠΌ CSS ΠΈΠ»ΠΈ JavaScript. Π’ этом руководствС Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ эти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Google App Engine ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ app.yaml , Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π­Ρ‚ΠΈ Π΄Π΅Π²ΡΡ‚ΡŒ строк ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ настройку этого прилоТСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ.

Однако рСкомСндуСтся ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π²Π²ΠΎΠ΄ΠΎΠΌ Π² производство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ошибки. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅, всС Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ локально, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Π’Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ локально

Flask поставляСтся с Π²Π΅Π±-сСрвСром Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ваш ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flask локально, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π° шага. Google App Engine Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Ρ‚Π΅ ΠΆΠ΅ дСйствия Π½Π° своих сСрвСрах послС развСртывания ΠΊΠΎΠ΄Π°:

  1. НастройтС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду.
  2. УстановитС ΠΏΠ°ΠΊΠ΅Ρ‚ flask .

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Python 3, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° своСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π­Ρ‚ΠΎ создаст Π½ΠΎΠ²ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду с ΠΈΠΌΠ΅Π½Π΅ΠΌ venv с использованиСм вСрсии Python 3, установлСнной Π² вашСй систСмС.Π—Π°Ρ‚Π΅ΠΌ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ скрипт Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ:

  $ исходный venv / bin / Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
  

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ вашС ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ измСнится, показывая, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ настройки ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ установкС Flask:

.
  $ python3 -m pip install -r requirements.txt
  

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, пСрСчислСнныС Π² трСбованиях .txt ΠΈΠ· PyPI ΠΈ устанавливаСт ΠΈΡ… Π² Π²Π°ΡˆΡƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду. Π’ этом случаС СдинствСнным установлСнным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Flask.

Π”ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ установки, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ main.py ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ строки ΠΊΠΎΠ΄Π° Π²Π½ΠΈΠ·Ρƒ Ρ„Π°ΠΉΠ»Π°:

 , Ссли __name__ == "__main__":
    app.run (host = "127.0.0.1", ΠΏΠΎΡ€Ρ‚ = 8080, debug = True)
  

Π­Ρ‚ΠΈ Π΄Π²Π΅ строки говорят Python Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flask, ΠΊΠΎΠ³Π΄Π° сцСнарий выполняСтся ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.Он Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ локальном запускС скрипта. Когда Π²Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ Π² Google App Engine, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ процСсс Π²Π΅Π±-сСрвСра, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Gunicorn. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flask ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Python Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Для этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask, Π½Π°Π±Ρ€Π°Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Flask запускаСт сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ ваш Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ тСксту, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅:

  * ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask "основноС" (лСнивая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°)
 * ΠžΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π°Ρ срСда: производство
   Π’ΠΠ˜ΠœΠΠΠ˜Π•: это сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² производствСнном Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ.
   ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ производствСнный сСрвСр WSGI.
 * Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: Π²ΠΊΠ»ΡŽΡ‡Π΅Π½
 * Запуск Π½Π° http://127.0.0.1:8080/ (для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π°ΠΆΠΌΠΈΡ‚Π΅ CTRL + C)
 * ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° со статом
 * ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½!
 * ПИН-ΠΊΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°: 315-059-987
  

Π­Ρ‚ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ содСрТат Ρ‚Ρ€ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… элСмСнта ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

  1. ΠŸΠ Π•Π”Π£ΠŸΠ Π•Π–Π”Π•ΠΠ˜Π• : Π­Ρ‚ΠΎ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flask, Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для обслуТивания ΠΊΠΎΠ΄Π° Π² производствСнной срСдС. ВмСсто этого Google App Engine сдСлаСт это Π·Π° вас.

  2. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° http://127.0.0.1:8080/ : Π­Ρ‚ΠΎ URL-адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ URL-адрСс вашСго локального хоста, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этому URL-адрСсу Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

  3. НаТмитС CTRL + C для Π²Ρ‹Ρ…ΠΎΠ΄Π°. : Π’ Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС Ρ‚Π°ΠΊΠΆΠ΅ сообщаСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· сСрвСра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π°ΠΆΠ°Π² Ctrl + C Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΠΎ адрСсу http: // 127.0.0.1: 8080/. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ страницу с тСкстом, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ: ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: URL-адрСс 127.0.0.1 Ρ‚Π°ΠΊΠΆΠ΅ называСтся localhost , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ваш собствСнный ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. НомСр 8080 , ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ послС двоСточия (: ), называСтся Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΡ€Ρ‚Π° . ΠŸΠΎΡ€Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ особый ΠΊΠ°Π½Π°Π», Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ трансляции Ρ‚Π΅Π»Π΅- ΠΈΠ»ΠΈ Ρ€Π°Π΄ΠΈΠΎΠΊΠ°Π½Π°Π»Π°.

Π’Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ эти значСния Π² app.run () Π² вашСм Ρ„Π°ΠΉΠ»Π΅ main.py . Запуск прилоТСния Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 8080 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ Π½Π° этот Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния ΠΎΡ‚ сСрвСра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠΎΡ€Ρ‚ 8080 ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для локального тСстирования, Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flask для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ вноситС Π² ΠΊΠΎΠ΄ своСго прилоТСния Python. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ вноситС Π² ΠΊΠΎΠ΄, ΠΈ автоматичСски пСрСзагруТаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΡ….Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ отобраТаСтся Π½Π° сСрвСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, ΠΎΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² производствСнной срСдС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ выглядит.

Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ послС развСртывания. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² Google App Engine ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹. Однако для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ создаСтС Π² этом руководствС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС, Ссли Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ index () ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. ΠŸΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ с этим. Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ index () Π½Π° HTML-ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Hello

, вмСсто использования простой тСкстовой строки?

ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ настроСк ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π° Π½Π° локальном сСрвСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π² Google App Engine.

Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python

НаконСц-Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.Но сначала Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π½ΡƒΠΆΠ½ΠΎ мСсто для размСщСния Π½Π° сСрвСрах Google, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚Π°ΠΌ бСзопасно. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ руководства Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… настроСк развСртывания ΠΊΠ°ΠΊ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Ρ‚Π°ΠΊ ΠΈ локально.

Настройка Π½Π° Google App Engine

Пошагово ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅ процСссом настройки. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, со ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ. Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… снимков экрана, — hello-app .

НачнитС с Π²Ρ…ΠΎΠ΄Π° Π² Google Cloud Platform.ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² прСдставлСниС ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Π³Π΄Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ панСль инструмСнтов Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π°. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ со стрСлкой Π²Π½ΠΈΠ· Π² Π»Π΅Π²ΠΎΠΉ части ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ модальноС ΠΎΠΊΠ½ΠΎ со списком Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Google:

.

Π’ модальном ΠΎΠΊΠ½Π΅ отобраТаСтся список Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым, Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ создавали Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ этого модального ΠΎΠΊΠ½Π° Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ NEW PROJECT ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΅Π΅:

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΠžΠ’Π«Π™ ΠŸΠ ΠžΠ•ΠšΠ’ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ вас Π½Π° Π½ΠΎΠ²ΡƒΡŽ страницу, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ имя для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Π­Ρ‚ΠΎ имя появится Π² URL-адрСсС вашСго прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: http://your-application-name.nw.r.appspot.com . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ hello-app Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ руководству:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ свой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° . Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° состоит ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ числа, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Google App Engine. Π’ случаС с этим руководством Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° — hello-app-295110 .Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ свой Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ понадобится Π²Π°ΠΌ ΠΏΠΎΠ·ΠΆΠ΅ для развСртывания.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ, ваш Π½ΠΎΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² этом руководствС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π‘ΠžΠ—Π”ΠΠ’Π¬ ΠΈ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ настроСн Π½Π° сторонС Google App Engine. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ сдСлано, появится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΈ сдСлайтС это, Π½Π°ΠΆΠ°Π² ВЫБРАВЬ ΠŸΠ ΠžΠ•ΠšΠ’ :

НаТав ВЫБРАВЬ ΠŸΠ ΠžΠ•ΠšΠ’ , Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу вашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Google Cloud Platform.Выглядит это Ρ‚Π°ΠΊ:

ΠžΡ‚ΡΡŽΠ΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° панСль управлСния Google App Engine. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π³Π°ΠΌΠ±ΡƒΡ€Π³Π΅Ρ€-мСню Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ, ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΠ² Π²Π½ΠΈΠ·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ App Engine Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ спискС, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Π² Dashboard Π²Π²Π΅Ρ€Ρ…Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ списка:

Π­Ρ‚ΠΎ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ вас Π½Π° панСль управлСния Google App Engine вашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠΊΠ° пуст, страница Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Когда Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ эту страницу, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ настройку Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Google App Engine.Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ дСйствия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для развСртывания прилоТСния Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ локально для развСртывания

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки Google Cloud SDK Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ доступ ΠΊ интСрфСйсу ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки gcloud . Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° поставляСтся с ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ инструкциями ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π²Π΅Π±-прилоТСния. НачнитС с Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π²Π°ΠΌ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π²Π΅Π±-сайтС Google App Engine:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ страницы, Google App Engine ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° для развСртывания вашСго ΠΊΠΎΠ΄Π° Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ свой Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ сообщСниСм ΠΎΠ± ошибкС:

  ΠžΠ¨Π˜Π‘ΠšΠ: (gcloud.app.deploy)
Π’ настоящСС врСмя Ρƒ вас Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π° активная учСтная запись.
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, запуститС:

  $ gcloud авторизация Π²Ρ…ΠΎΠ΄Π°

для получСния Π½ΠΎΠ²Ρ‹Ρ… ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ ΡƒΠΆΠ΅ вошли Π² систСму с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью:

    $ gcloud config ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ACCOUNT

для Π²Ρ‹Π±ΠΎΡ€Π° ΡƒΠΆΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи для использования. 

Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ это сообщСниС ΠΎΠ± ошибкС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ Π² своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Google App Engine, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Google, Ρ‡Ρ‚ΠΎ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ этой ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Google App Engine с локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки gcloud ΡƒΠΆΠ΅ прСдоставило Π²Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π² свой Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»:

Π­Ρ‚ΠΎ запустит процСсс Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, сгСнСрировав URL-адрСс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π² Π΅Π³ΠΎ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ процСсс, Π²Ρ‹Π±Ρ€Π°Π² свою ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Google Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ прСдоставив Google Cloud SDK Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²Π°. ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ своСму Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ, Π³Π΄Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ процСссС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

  Π’Π°Ρˆ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для посСщСния:

    https://accounts.google.com/o/oauth3/auth?client_id= 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ вошли Π² систСму ΠΊΠ°ΠΊ [].
Π’Π°Ρˆ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ - [НСт]. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, запустив:
  $ gcloud config ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ PROJECT_ID
  

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ это сообщСниС, Π·Π½Π°Ρ‡ΠΈΡ‚, аутСнтификация ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки снова ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ вашСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС.

Он сообщаСт Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя Π½Π΅Ρ‚ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, запустив gcloud config set project PROJECT_ID . Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ понадобится ID ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, пСрСйдя Π½Π° Π²Π΅Π±-сайт Google App Engine ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π²Π½ΠΈΠ· стрСлку, которая Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ модальноС ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ всС ваши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Google.Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΊΠ°Π·Π°Π½ справа ΠΎΡ‚ названия вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ состоит ΠΈΠ· названия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΡˆΠ΅ΡΡ‚ΠΈΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ числа.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ hello-app-295110 Π½Π° свой собствСнный ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

  $ gcloud config set project hello-app-295110
  

Π’Π°Ρˆ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» распСчатаСт ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ сообщСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ свойство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ установки Π² качСствС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вашСго ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ шаги ΠΏΠΎ настройкС.

ЗапуститС процСсс развСртывания

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ развСртывания Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ gcloud ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ваши ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ настроили, ΠΈ позволяСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ. Π”Π°Π»Π΅Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΠΎΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

  Π’Ρ‹ создаСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° [hello-app-295110].
Π’ΠΠ˜ΠœΠΠΠ˜Π•! Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния App Engine для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° - это
Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½.ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация ΠΎ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Ρ… Π½Π° сайтС
.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π΅Π³ΠΈΠΎΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ App Engine.
располоТСна:

 [1] азия-восток2
 [2] азия-сСвСро-восток1
 [3] азия-сСвСро-восток2
 [4] азия-сСвСро-восток3
 [5] азия-юг2
 [6] азия-юго-восток2
 [7] австралия-юго-восток1
 [8] Π΅Π²Ρ€ΠΎΠΏΠ°-Π·Π°ΠΏΠ°Π΄
 [9] Π΅Π²Ρ€ΠΎΠΏΠ°-Π·Π°ΠΏΠ°Π΄2
 [10] Π΅Π²Ρ€ΠΎΠΏΠ°-Π·Π°ΠΏΠ°Π΄3
 [11] Π΅Π²Ρ€ΠΎΠΏΠ°-Π·Π°ΠΏΠ°Π΄6
 [12] сСвСрная Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°-сСвСро-восток1
 [13] юго-Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°-восток1
 [14] us-central
 [15] us-east1
 [16] us-east4
 [17] us-west2
 [18] us-west3
 [19] us-west4
 [20] ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ваш числовой Π²Ρ‹Π±ΠΎΡ€:
  

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· чисСл, пСрСчислСнных слСва, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’Π²Π΅Π΄ΠΈΡ‚Π΅ .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: НС ΠΈΠΌΠ΅Π΅Ρ‚ значСния, ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π³ΠΈΠΎΠ½ Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ для этого прилоТСния. Однако, Ссли Π²Ρ‹ создаСтС большоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° сСрвСрС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ физичСски находится Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ мСсту, Π³Π΄Π΅ находится Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ПослС Π²Π²ΠΎΠ΄Π° Π½ΠΎΠΌΠ΅Ρ€Π° интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ процСсс настройки. ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π² Google App Engine ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, ΠΈ попросит ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ:

  Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния App Engine Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ [hello-app-295110]
ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½ [Π΅Π²Ρ€ΠΎΠΏΠ°-Π·Π°ΠΏΠ°Π΄]....Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.
Услуги для развСртывания:

дСскриптор: [/Users/realpython/Documents/helloapp/app.yaml]
источник: [/ Users / realpython / Documents / helloapp]
Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚: [hello-app-295110]
цСлСвая слуТба: [ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ]
цСлСвая вСрсия: [20201109t112408]
Ρ†Π΅Π»Π΅Π²ΠΎΠΉ URL: [https://hello-app-295110.ew.r.appspot.com]


Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ (Π” / Π½Π΅Ρ‚)?
  

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ настройку, Π½Π°Π±Ρ€Π°Π² Y , вашС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π±ΡƒΠ΄Π΅Ρ‚ Π² процСссС. Π’Π°Ρˆ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΠΊΠ° Google App Engine настраиваСт ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° своих сСрвСрах:

  Начало развСртывания слуТбы [ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ]...
Π‘ΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ» .gcloudignore. Π—Π° подробностями ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ‚Π΅ΠΌΠ΅ `gcloud gcloudignore`.
╔════════════════════════════════════════════════ ═══════════╗
╠═ Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° 3 Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Google Cloud Storage ═
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• ═══════════╝
Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.
ОбновлСниС слуТбы [ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ] ... β Ό
  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ вашСго Π²Π΅Π±-прилоТСния, это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ развСртывания Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² консоли.Он Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  РазвСрнутая слуТба [ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ] Π½Π° [https://hello-app-295110.ew.r.appspot.com]

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, запустив:
  ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ $ gcloud рСгистрируСт хвост -s ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, запуститС:
  просмотр прилоТСния $ gcloud
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ URL-адрСсу Π² своСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈΠ»ΠΈ ввСсти ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ gcloud app browse , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ тСкстовый ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈ запускС прилоТСния Π½Π° вашСм локальном хостС: ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π° этом Π²Π΅Π±-сайтС Π΅ΡΡ‚ΡŒ URL-адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми, ΠΈ ΠΎΠ½ΠΈ смогут ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ.Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠΈΠ²ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python!

Π‘Π½ΠΎΠ²Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ index () ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ gcloud app deploy . Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π²Π΅Π±-сайтС Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ шаги ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ локального ΠΊΠΎΠ΄Π° Python Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Однако СдинствСнная функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΠΎΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, — это ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ строки тСкста.

ΠŸΠΎΡ€Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ шаг Π²ΠΏΠ΅Ρ€Π΅Π΄! БлСдуя Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ процСссу, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ прСдставитС Π±ΠΎΠ»Π΅Π΅ интСрСсныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.Π’Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° сцСнария локального прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ сцСнария Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это руководство посвящСно созданию ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python ΠΈΠ· ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ΄ Python для сцСнария прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ прСдоставляСтся здСсь:

  def fahrenheit_from (по ЦСльсию):
    "" "ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ градусы ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°." ""
    ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ:
        ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (ΠΏΠΎ ЦСльсию) * 9/5 + 32
        fahrenheit = round (fahrenheit, 3) # ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… дСсятичных Π·Π½Π°ΠΊΠΎΠ²
        return str (ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ)
    ΠΊΡ€ΠΎΠΌΠ΅ ValueError:
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ «нСдопустимый Π²Π²ΠΎΠ΄Β»

Ссли __name__ == "__main__":
    celsius = input ("ЦСльсий:")
    print ("Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚:", fahrenheit_from (ΠΏΠΎ ЦСльсию))
  

Π­Ρ‚ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ ЦСльсию Π² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ сцСнарий Python ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидалось, ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄.

ИмСя Π² Ρ€ΡƒΠΊΠ°Ρ… этот Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ скрипт, Π²Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask. ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π²Π° основных ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°:

  • Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: Как Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ·Π½Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄?
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄: Как Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ?

Π’Ρ‹ ΡƒΠΆΠ΅ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Flask Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊΠΎΠ΄ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚.НачнитС с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Flask раздСляСт Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… назначаСтся ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ @ app.route . Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ посСщаСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ ΠΏΠΎ Π΅Π³ΠΎ URL-адрСсу, выполняСтся ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

НачнитС с добавлСния fahrenheit_from () Π² Ρ„Π°ΠΉΠ» main.py ΠΈ ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ @ app.route :

  ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°

app = Flask (__ имя__)

@ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚("/")
def index ():
    return "ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!"

@ app.route ("/")
def fahrenheit_from (по ЦСльсию):
    "" "ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ градусы ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°." ""
    ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ:
        ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (ΠΏΠΎ ЦСльсию) * 9/5 + 32
        fahrenheit = round (fahrenheit, 3) # ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… дСсятичных Π·Π½Π°ΠΊΠΎΠ²
        return str (ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ)
    ΠΊΡ€ΠΎΠΌΠ΅ ValueError:
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ «нСдопустимый Π²Π²ΠΎΠ΄Β»

Ссли __name__ == "__main__":
    app.run (host = "127.0.0.1", ΠΏΠΎΡ€Ρ‚ = 8080, debug = True)
  

Пока Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скопировали ΠΊΠΎΠ΄ своСго скрипта Python Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Flask ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ @app.Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° .

Однако ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с этой настройкой ΡƒΠΆΠ΅ сущСствуСт. Π§Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС ΠΊΠΎΠ΄ Π½Π° своСм сСрвСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅.

Π’ настоящСС врСмя ΠΎΠ±Π΅ ваши Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠΌ ( "/" ). Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ посСщаСт этот ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, Flask Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΅ΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ выполняСт этот ΠΊΠΎΠ΄. Π’ вашСм случаС это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ fahrenheit_from () Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ выполняСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ index () соотвСтствуСт Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ ΠΈ ​​вызываСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

Для доступа ΠΊ вашСй Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ потрСбуСтся собствСнный ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΌ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ значСния Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Π΅ эти Π·Π°Π΄Π°Ρ‡ΠΈ, ΡƒΠΊΠ°Π·Π°Π² Flask ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ URL-адрСса, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ URL-адрСсом, ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π΅ вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Для этого трСбуСтся лишь нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° @ app.route ΠΏΠ΅Ρ€Π΅Π΄ fahrenheit_from () :

.
  @app.ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ ("/ <Ρ†Π΅Π»ΡŒΡΠΈΠΉ>")
def fahrenheit_from (по ЦСльсию):
    # - снип -
  

Бинтаксис ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобок ( <> ) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Flask Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ любой тСкст, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ URL ( "/" ), ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ celsius . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ fahrenheit_from () Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π²ΠΎΠ΄Π° градусов ЦСльсия .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡƒΡ‚ΠΈ URL Ρ‚ΠΎ ΠΆΠ΅ имя, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Flask запутаСтся ΠΈ сообщит Π²Π°ΠΌ ΠΎΠ± этом, прСдставив сообщСниС ΠΎΠ± ошибкС.

Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² свой Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Flask. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±Π΅ΠΈΠΌ функциям Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ URL:

  • ИндСкс (/): Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ URL, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΠ΄Ρ€ΡΡŽΡ‰Π΅Π΅ сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½Π΅Π΅.
  • ЦСльсия (/42 ): Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ число послС косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ прСобразованная Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° появится Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

ΠŸΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ с Π½ΠΈΠΌ Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ввСсти Ρ€Π°Π·Π½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Ρ‹. Π”Π°ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈΠ· вашСго скрипта ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ нСчисловыС Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΡˆΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСт Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ сцСнарий Python локально, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ вашСго ΠΊΠΎΠ΄Π°

Flask — это Π·Ρ€Π΅Π»Ρ‹ΠΉ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ мноТСство Π·Π°Π΄Π°Ρ‡ своим Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Flask ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ провСрял Ρ‚ΠΈΠΏ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» сообщСниС ΠΎΠ± ошибкС, Ссли ΠΎΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.ВсС это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ синтаксиса Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° @ app.route . Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ устройству Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΏΡƒΡ‚ΠΈ:

  @ app.route ("/ ")
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ int: ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Flask ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ URL-адрСса, Π² Ρ†Π΅Π»ΠΎΠ΅ число. Если это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, содСрТимоС пСрСдаСтся Π½Π° fahrenheit_from () . Если это Π½Π΅ удаСтся, Flask ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ страницу с ошибкой Not Found .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ошибка Not Found ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Flask попытался ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡƒΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π²Ρ‹Ρ€Π΅Π·Π°Π» ΠΈΠ· URL-адрСса, с любой ΠΈΠ· извСстных Π΅ΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Однако СдинствСнныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ Π² настоящСС врСмя Π·Π½Π°Π΅Ρ‚, — это пустой Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ (/) ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт число, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ /42 . ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΎΠΉ тСкст, ΠΊΠ°ΠΊ / hello , Π½Π΅ соотвСтствуСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· этих шаблонов, ΠΎΠ½ сообщаСт Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ URL Π½Π΅ Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ Π½Π° сСрвСрС.

ПослС примСнСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ° Flask Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ бСзопасно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ try … , ΠΊΡ€ΠΎΠΌΠ΅ Π±Π»ΠΎΠΊΠ° Π² fahrenheit_from () . Flask ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа:

  ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°

app = Flask (__ имя__)

@ app.route ("/")
def index ():
    return "ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!"

@ app.route ("/ ")
def fahrenheit_from (по ЦСльсию):
    "" "ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ градусы ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°." ""
    ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (ΠΏΠΎ ЦСльсию) * 9/5 + 32
    fahrenheit = round (fahrenheit, 3) # ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… дСсятичных Π·Π½Π°ΠΊΠΎΠ²
    return str (ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ)

Ссли __name__ == "__main__":
    ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.run (host = "127.0.0.1", port = 8080, debug = True)
  

На этом Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ скрипта прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ локально, Π·Π°Ρ‚Π΅ΠΌ снова Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Google App Engine.

Refactor index () . Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ тСкст, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTML-Ρ‚Π΅Π³ΠΈ Π² строкС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°. HTML Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° вашСй Ρ†Π΅Π»Π΅Π²ΠΎΠΉ страницС.

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ развСртывания Π²Π΅Π±-прилоТСния для прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρƒ вас Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ ссылка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ ЦСльсию Π² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ.

Однако интСрфСйс ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ выглядит довольно просто, ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ большС ΠΊΠ°ΠΊ API, Ρ‡Π΅ΠΌ интСрфСйсноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. МногиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с вашим Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Python Π² Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ ограничСния использования чистого Python для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятныС интСрфСйсы, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ хотя Π±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTML.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTML создадитС ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ число прямо Π½Π° страницС, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· URL.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса вашСго Π²Π΅Π±-прилоТСния

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π²Π²ΠΎΠ΄Π° HTML

Π² вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΈ удобство использования вашСго Π²Π΅Π±-прилоТСния, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с языками, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ Python, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ с интСрфСйсными языками, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ HTML, CSS ΠΈ JavaScript. Π’ этом руководствС ΠΌΡ‹ стараСмся Π½Π΅ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° использовании Python.

Однако, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π² своС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ HTML. Π’Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выглядСло ΠΈ ΠΎΡ‰ΡƒΡ‰Π°Π»ΠΎΡΡŒ ΠΊΠ°ΠΊ Π²Π΅Π±-сайт, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π½Π°ΠΊΠΎΠΌΡ‹.Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт HTML для сбора ΠΈΡ… Π²Π²ΠΎΠ΄Π°.

ПослС обновлСния вашСго Π²Π΅Π±-прилоТСния Ρƒ вас появится тСкстовоС ΠΏΠΎΠ»Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² градусах ЦСльсия. Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ для прСобразования Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°:

.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ .

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΡ€ΠΌΠ° ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС.Π’Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° конСчная Ρ‚ΠΎΡ‡ΠΊΠ° URL.

Π‘Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

НачнитС с создания элСмСнта Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ страницС. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСсколько строк HTML Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° index () , Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ тСкстовоС сообщСниС:

  @ app.route ("/")
def index ():
    return "" "
                
                
               "" "
  

Когда Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ страницу ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ URL, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ.HTML отобраТаСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали Ρ„ΠΎΡ€ΠΌΡƒ Π²Π²ΠΎΠ΄Π°!

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ эти нСсколько строк HTML сами ΠΏΠΎ сСбС Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ HTML-страницСй. Однако соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ спроСктированы Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для вас Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΡƒΡŽ структуру.

Π§Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ? Π₯отя страница выглядит Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ URL-адрСс измСнился. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ послС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ URL.

НапримСр, Ссли Π²Ρ‹ Π²Π²Π΅Π»ΠΈ 42 Π² тСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ, ваш URL-адрСс Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: http://127.0.0.1:8080/?celsius=42 . Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ новости! Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ записано ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° запроса Π² запрос HTTP GET. Π­Ρ‚ΠΎΡ‚ URL-адрСс ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ снова Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ URL-адрСс, Π½ΠΎ Π½Π° этот Ρ€Π°Π· с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ отправляСтС вмСстС.

Однако Π² настоящСС врСмя с этим Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит.Π₯отя Ρ„ΠΎΡ€ΠΌΠ° настроСна Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ связана с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° вашСго Π²Π΅Π±-прилоТСния Python.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эту связь, Π²Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части элСмСнта

, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π° Ρ€Π°Π·Π½Ρ‹Π΅ части. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ элСмСнта ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

  1. элСмСнт
  2. ПолС ввода
  3. Кнопка ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты HTML.Π₯отя это руководство Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Python, Π° Π½Π΅ Π½Π° HTML, всС ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит Π² этом Π±Π»ΠΎΠΊΠ΅ HTML-ΠΊΠΎΠ΄Π°. НачнитС с просмотра самого внСшнСго элСмСнта HTML.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ создаСт HTML-Ρ„ΠΎΡ€ΠΌΡƒ. Π”Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнта Π·Π°Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π½Π΅Π³ΠΎ:

  
  
  

  

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚

Ρ‚Π°ΠΊΠΆΠ΅ содСрТит Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° HTML , Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… action ΠΈ method :

  • дСйствиС опрСдСляСт, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.Π—Π΄Π΅ΡΡŒ Π²Ρ‹ оставляСтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ пустой строки, Ρ‡Ρ‚ΠΎ заставляСт ваш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запрос ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ URL, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½. Π’ вашСм случаС это пустой Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ URL.

  • ΠΌΠ΅Ρ‚ΠΎΠ΄ опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ HTTP-запроса создаСт Ρ„ΠΎΡ€ΠΌΠ°. ΠŸΡ€ΠΈ использовании значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Β«getΒ» создаСт HTTP-запрос GET. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… запроса URL. Если Π²Ρ‹ отправляли ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ обмСнивались Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTTP-запрос POST.

ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ элСмСнта ΠΈ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ рассмотрСниС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов .

ПолС ввода

Π’Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт HTML — это элСмСнт , Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² элСмСнт :

  
  
  

  

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° HTML:

  1. Π’ΠΈΠΏ опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ элСмСнта Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан.Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π° Π²Ρ‹Π±ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π»Π°ΠΆΠΊΠΈ ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты. Π’ этом случаС Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΠ» число ΠΊΠ°ΠΊ тСкст, поэтому Π²Ρ‹ устанавливаСтС Ρ‚ΠΈΠΏ «тСкст» .

  2. имя опрСдСляСт, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ ΠΊ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ, Π³Π΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² тСкстовоС ΠΏΠΎΠ»Π΅. Π’Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ это имя отобраТаСтся Π² URL-адрСсС ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° запроса. Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ понадобится Π²Π°ΠΌ ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

HTML элСмСнтов ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этого, глядя Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΊΠ½ΠΎΠΏΠΊΡƒ Submit ΠΈ являСтся послСдним элСмСнтом HTML, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ ваш Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°.

Кнопка «ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ»

Π’Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт создаСт ΠΊΠ½ΠΎΠΏΠΊΡƒ, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅:

  

Π­Ρ‚ΠΎΡ‚ элСмСнт Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° HTML с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ , Ρ‚ΠΈΠΏ ΠΈ , Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ :

.
  • Ρ‚ΠΈΠΏ опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта Π±ΡƒΠ΄Π΅Ρ‚ создан.ΠŸΡ€ΠΈ использовании значСния Β«ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ» создаСт ΠΊΠ½ΠΎΠΏΠΊΡƒ, которая позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ объСдинСнной Ρ„ΠΎΡ€ΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π΅Π΄.

  • Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ тСкст Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ°. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ тСкст.

ИмСя Π² Π²ΠΈΠ΄Ρƒ этот ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов HTML ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ добавляСтС Π² свой ΠΊΠΎΠ΄ Python ΠΈ для Ρ‡Π΅Π³ΠΎ эти элСмСнты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, которая Π²Π°ΠΌ понадобится для связи ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΊΠΎΠ΄ΠΎΠΌ Flask, — это ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта имя , градуса ЦСльсия , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для доступа ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Python для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡ‹.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°

Π’ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ action вашСго элСмСнта

Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ вашСй HTML-Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ URL-адрСсу, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹.Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ получСния значСния Π² index () . Для этого Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π° шага:

  1. Import Flask’s request object: Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Flask ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ HTTP-запросы ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ request , Π²Π°ΠΌ сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

  2. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠžΠ±ΡŠΠ΅ΠΊΡ‚ запроса содСрТит ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ доступ ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· синтаксис словаря Python.Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² своСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ свой ΠΊΠΎΠ΄ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эти Π΄Π²Π° измСнСния сСйчас. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ† строки Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ послС Ρ„ΠΎΡ€ΠΌΡ‹:

  ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°
ΠΈΠ· запроса Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΠ»Π±Ρ‹

app = Flask (__ имя__)

@ app.route ("/")
def index ():
    celsius = request.args.get ("celsius", "")
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
        "" "
                
                
             "" "
        + по ЦСльсию
    )

@ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.route ("/ ")
def fahrenheit_from (по ЦСльсию):
    "" "ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ градусы ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°." ""
    ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (ΠΏΠΎ ЦСльсию) * 9/5 + 32
    fahrenheit = round (fahrenheit, 3) # ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… дСсятичных Π·Π½Π°ΠΊΠΎΠ²
    return str (ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ)

Ссли __name__ == "__main__":
    app.run (host = "127.0.0.1", ΠΏΠΎΡ€Ρ‚ = 8080, debug = True)
  

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ request.args содСрТит Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ с запросом HTTP GET. Если ваш Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ URL вызываСтся ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚ΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ пустым, ΠΈ вмСсто этого Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ строку Π² качСствС значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.Если страница вызываСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚ΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΏΠΎ шкалС ЦСльсия , ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡƒΡŽ строку.

Π”Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ шанс! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти число, ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ прямо ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. Если ввСсти Π½ΠΎΠ²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, старый Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½. Π’Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ отправляСтС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ прСдставлСнного значСния с ΠΊΠΎΠ΄ΠΎΠΌ прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ с этой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ?

Π§Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ строку вмСсто числа? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ HTML-ΠΊΠΎΠ΄ КУПИВЬ Π‘Π•Π‘ΠŸΠ›ΠΠ’ΠΠ«Π• Π’Π•Π©Π˜ !!! ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Convert .

Π’ настоящСС врСмя вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ любой Π²Π²ΠΎΠ΄, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ число, строка ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ΄ HTML ΠΈΠ»ΠΈ JavaScript. Π­Ρ‚ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ опасно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ случайно ΠΈΠ»ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ вашСго Π²Π΅Π±-прилоТСния, ввСдя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Flask автоматичСски ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… бСзопасности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Ρ€ΡƒΠ³ΡƒΡŽ настройку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Однако сСйчас Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации, поэтому Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΡƒ Π²Π²ΠΎΠ΄Π° бСзопасной.

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этого Π²Π²ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ исслСдования Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, — это огромная Π΄Ρ‹Ρ€Π° Π² бСзопасности. Π”Π°ΠΆΠ΅ Π±Π΅Π· Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ намСрСния ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅ вашСго прилоТСния.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Π½Π΅ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π²Π²ΠΎΠ΄Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π΅ тСкст HTML.ВмСсто Π²Π²ΠΎΠ΄Π° числа скопируйтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку HTML-ΠΊΠΎΠ΄Π°, Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π΅ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ :

.
    ΠΠΠ–ΠœΠ˜Π’Π• ΠœΠ•ΠΠ―  
  

Flask вставляСт тСкст нСпосрСдствСнно Π² HTML-ΠΊΠΎΠ΄, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ тСкст интСрпрСтируСтся ΠΊΠ°ΠΊ HTML-Ρ‚Π΅Π³ΠΈ. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ваш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ HTML. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ тСкста, Π²Π°ΠΌ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ приходится ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ со ΡΡ‚ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ спам-ссылкой, которая ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π»Π° Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прямо ΠΈΠ· 90-Ρ…:

Π₯отя этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Π΅Π·Π²Ρ€Π΅Π΄Π΅Π½ ΠΈ исчСзаСт с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ вашСй страницы, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ бСзопасности, ΠΊΠΎΠ³Π΄Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.Π’Ρ‹ ΠΆΠ΅ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ аспСкты вашСго Π²Π΅Π±-прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для рСдактирования.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный Π² Flask escape () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы HTML <, > ΠΈ ΠΈ Π² эквивалСнтныС прСдставлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Для использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ escape Π² свой скрипт Python. Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ отправляСтС Ρ„ΠΎΡ€ΠΌΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы HTML ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚ Π²Π·Π»ΠΎΠΌΠ° 90-Ρ…:

  ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°
ΠΈΠ· запроса Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΠ»Π±Ρ‹, escape

app = Flask (__ имя__)

@ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚("/")
def index ():
    celsius = str (escape (request.args.get ("celsius", "")))
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ (
        "" "
"" " + ΠΏΠΎ ЦСльсию ) @ app.route ("/ ") def fahrenheit_from (ΠΏΠΎ ЦСльсию): "" "ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ градусы ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°." "" ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (ΠΏΠΎ ЦСльсию) * 9/5 + 32 fahrenheit = round (fahrenheit, 3) # ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… дСсятичных Π·Π½Π°ΠΊΠΎΠ² return str (ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ) Ссли __name__ == "__main__": ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.run (host = "127.0.0.1", port = 8080, debug = True)

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ HTML-ΠΊΠΎΠ΄. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ снова Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π²Π°ΠΌ Π² Π²ΠΈΠ΄Π΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ тСкстовой строки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: НСобходимо ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Python str . Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Flask Ρ‚Π°ΠΊΠΆΠ΅ ΠΆΠ°Π΄Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ элСмСнт

, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π² экранированныС строки.

ΠŸΡ€ΠΈ создании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π°ΠΌ Π½Π΅ придСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с экранированиСм Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вСсь HTML-ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ с использованиСм шаблонов.Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± этом большС, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Flask by Example.

Π£Π·Π½Π°Π², ΠΊΠ°ΠΊ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΡ…, Π²Ρ‹, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ ΠΈΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ЦСльсия.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ URL, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Flask ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ посрСдством Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡƒΡ‚ΠΈ URL, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ввСсти try … , Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠ° ΠΈΠ· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ fahrenheit_from () исходного ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ провСряСтС Ρ‚ΠΈΠΏ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π² fahrenheit_from () , Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ flask.escape () , ΠΈ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒΡŽ вашСго ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ бСзопасно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ escape ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² request.args.get () Π² исходноС состояниС.

На этот Ρ€Π°Π· fahrenheit_from () Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ связан с Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ @ app.route . Π£Π΄Π°Π»ΠΈΡ‚Π΅ эту строку ΠΊΠΎΠ΄Π°. Π’Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚Π΅ fahrenheit_from () явно ΠΈΠ· index () вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Flask Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΈ доступС ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ URL.

ПослС удалСния Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ· fahrenheit_from () ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ввСдСния Π±Π»ΠΎΠΊΠ° try … Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ , Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊ index () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт, содСрТит Π»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ request Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ градусов ЦСльсия. ΠΊΠ»ΡŽΡ‡.Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ fahrenheit_from () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°. Если это Π½Π΅ Ρ‚Π°ΠΊ, вмСсто этого Π²Ρ‹ присваиваСтС ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ .

Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π° Π² ΠΊΠΎΠ½Π΅Ρ† строки HTML. ΠŸΡƒΡΡ‚Π°Ρ строка Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° вашСй страницС, Π½ΠΎ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

ПослС примСнСния этих ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ заполняСтС ΠΊΠΎΠ΄ для своСго прилоТСния Flask для прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹:

  1 ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°
 2ΠΈΠ· запроса Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΠ»Π±Ρ‹
 3
 4app = Flask (__ name__)
 5
 6 @ app.ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚("/")
 7def index ():
 8 по ЦСльсию = request.args.get ("по ЦСльсию", "")
 9 Ссли по ЦСльсию:
10 ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = ΠΎΡ‚ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π° (ΠΏΠΎ ЦСльсию)
Π•Ρ‰Π΅ 11:
12 Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚ = ""
13 Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ (
14 "" "
Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° 15 градусов ЦСльсия: 
16 
17  "" "
18+ "Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚:"
19 + ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ
20)
21 Π³ΠΎΠ΄
22def fahrenheit_from (по ЦСльсию):
23 "" "ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ градусы ЦСльсия Π² градусы Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°."" "
24 ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ:
25 ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π°Ρ (ΠΏΠΎ ЦСльсию) * 9/5 + 32
26 ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ = round (ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ, 3) # ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… дСсятичных Π·Π½Π°ΠΊΠΎΠ²
27 обратная ΡƒΠ». (Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚)
28, ΠΊΡ€ΠΎΠΌΠ΅ ValueError:
29 Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Β«Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄Β»
30
31Ссли __name__ == "__main__":
32 app.run (host = "127.0.0.1", ΠΏΠΎΡ€Ρ‚ = 8080, debug = True)
  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Ρ‹Π»ΠΎ довольно ΠΌΠ½ΠΎΠ³ΠΎ, Π²ΠΎΡ‚ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк:

  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2: Π’Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ»Π±Ρƒ .escape () большС, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 8, 11 ΠΈ 12: Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса Flask. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ словарный ΠΌΠ΅Ρ‚ΠΎΠ΄ .get () , Π²Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° пустая строка, Ссли ΠΊΠ»ΡŽΡ‡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли страница Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Ρ„ΠΎΡ€ΠΌΡƒ. Π­Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² строках 11 ΠΈ 12.

  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 19: Возвращая Ρ„ΠΎΡ€ΠΌΡƒ с пустой строкой ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, вставлСнной Π² ΠΊΠΎΠ½Π΅Ρ†, Π²Ρ‹ ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚Π΅ отобраТСния Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° Π±Ρ‹Π»Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°.

  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 9 ΠΈ 10: ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Π²Π΅Π΄ΡƒΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΡƒΡ‚ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ , Ρ‚Π° ΠΆΠ΅ страница загрузится снова. На этот Ρ€Π°Π· request.args.get ("celsius", "") Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡ celsius ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ связанноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ заставляСт условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ True , Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² fahrenheit_from () .

  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ с 24 ΠΏΠΎ 29: fahrenheit_from () провСряСт, Π²Π²Π΅Π» Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ допустимый Π²Π²ΠΎΠ΄. Если прСдоставлСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой , Ρ‚ΠΎΠ³Π΄Π° функция примСняСт ΠΊΠΎΠ΄ прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² градусах Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π°. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ удаСтся, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError , ΠΈ вмСсто этого функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку «нСдопустимый Π²Π²ΠΎΠ΄Β» .

  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 19: На этот Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ присоСдиняСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ fahrenheit ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ строки HTML, ΠΎΠ½Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fahrenheit_from () .Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ваш HTML Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​прСобразованная Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ строка сообщСния ΠΎΠ± ошибкС.

  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 15 ΠΈ 18: Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ использованиС страницы, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ добавляСтС ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ЦСльсия ΠΈ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Π° ΠΊ Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС HTML.

Π’Π°ΡˆΠ° страница Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли способ добавлСния этих строк Π½Π΅ соотвСтствуСт Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ HTML. Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ благодаря мощности соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ².

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ HTML. Но для развСртывания вашСго скрипта Python Π² сСти это Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипт прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ ЦСльсию Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ появится Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Π±-страницС. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ HTTP-запрос GET ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² URL-адрСсС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ЀактичСски, Π²Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ собствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для градусов ЦСльсия , ΡƒΠΊΠ°Π·Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ адрСс, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создавали скрипт Π±Π΅Π· HTML-Ρ„ΠΎΡ€ΠΌΡ‹.

НапримСр, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ввСсти URL-адрСс localhost: 8080 /? Celsius = 42 прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ появится Π½Π° вашСй страницС.

Π‘Π½ΠΎΠ²Π° Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Google App Engine с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ gcloud app deploy .ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ развСртывания ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ URL-адрСсу ΠΈΠ»ΠΈ запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ gcloud, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ это, добавляя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ‹, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своСй ссылкой со всСм ΠΌΠΈΡ€ΠΎΠΌ.

URL-адрСс Π²Π΅Π±-прилоТСния прСобразоватСля Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: https://hello-app-295110.ew.r.appspot.com/ . Π­Ρ‚ΠΎ Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго прилоТСния.

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с инструкциями ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ, создайтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Google App Engine с Π±ΠΎΠ»Π΅Π΅ подходящим ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.Π­Ρ‚ΠΎ даст Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Flask Π² Google App Engine.

На этом этапС Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ свой скрипт Python Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π΅Π³ΠΎ Π² Google App Engine для ΠΎΠ½Π»Π°ΠΉΠ½-хостинга. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСсс для прСобразования большСго количСства Π²Π°ΡˆΠΈΡ… скриптов Python Π² Π²Π΅Π±-прилоТСния.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ собствСнный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ стихов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ стихотворСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅Π±-Ρ„ΠΎΡ€ΠΌΡ‹. Π’Π°ΡˆΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ страницу с СдинствСнной Ρ„ΠΎΡ€ΠΌΠΎΠΉ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запросы GET.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Π½Π°Ρ‡Π°Π»Π° ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ с Google App Engine, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± использовании статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» CSS Π² своС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄.

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ доступным для большСго числа людСй Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ свои Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ скрипты Π² прилоТСния Flask ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΡ… ΠΌΠΈΡ€Ρƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ Π²Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ! Π’Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ с локального скрипта Python ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π½Π° Google App Engine.

Работая с этим руководством, Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ:

  • Как Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚
  • Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ вашСго скрипта Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² сСти
  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask
  • Как Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄
  • Как Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ свой ΠΊΠΎΠ΄ Π½Π° Google App Engine

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ свои Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сцСнарии Python ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… доступными Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ для использования Π²ΠΎ всСм ΠΌΠΈΡ€Π΅.Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прилоТСния, созданного Π² этом руководствС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ссылку Π½ΠΈΠΆΠ΅:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для экспСримСнтов с Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ Python, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Flask ΠΈ Django. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ!

Π’Π΅Π±-прилоТСния ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ — Автостопом ΠΏΠΎ Python

Как ΠΌΠΎΡ‰Π½Ρ‹ΠΉ язык сцСнариСв, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ для быстрого прототипирования ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Python ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²Π΅Π±-прилоТСниях. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚

WSGI

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ шлюза Π²Π΅Π±-сСрвСра (ΠΈΠ»ΠΈ сокращСнно WSGI) являСтся стандартным интСрфСйс ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π±-сСрвСрами ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python. ΠžΡ‚ стандартизация повСдСния ΠΈ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π±-сСрвСрами ΠΈ Π²Π΅Π±-сайтом Python frameworks, WSGI позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ пСрСносимый Π²Π΅Π±-ΠΊΠΎΠ΄ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ Π½Π° любом WSGI-совмСстимом Π²Π΅Π±-сСрвСрС. WSGI Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π² PEP 3333 .

ΠšΠ°Ρ€ΠΊΠ°ΡΡ‹

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ основного ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный ΠΊΠΎΠ΄ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-прилоТСния (я.Π΅. ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π΅Π±-сайт). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ услуги для выполнСния ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ:

URL-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ
БопоставляСт входящий HTTP-запрос с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° Python для Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΌ
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ запроса ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°
Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π΅ΠΌΡƒ.
ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ шаблонов
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Python, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния, ΠΎΡ‚ HTML (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ) Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚
Π’Π΅Π±-сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
ЗапускаСт HTTP-сСрвСр Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ; часто автоматичСски ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ сСрвСрный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π”ΠΆΠ°Π½Π³ΠΎ

Django — это Π²Π΅Π±-сайт «с Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠ°ΠΌΠΈΒ» Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ прилоТСния ΠΈ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для создания ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π²Π΅Π±-сайты.ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ мноТСство ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ шаблонов ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, Django стрСмится Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ быстроС созданиС слоТных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, поощряя ΠΏΡ€ΠΈ этом ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ написания ΠΊΠΎΠ΄Π° с Π΅Π³ΠΎ использованиСм.

Django ΠΈΠΌΠ΅Π΅Ρ‚ большоС ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСство, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ настроСнный Π² соотвСтствии с вашими потрСбностями.

Π•ΠΆΠ΅Π³ΠΎΠ΄Π½ΠΎ проводятся ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ΠΏΠΎ Django Π² БША, Π•Π²Ρ€ΠΎΠΏΠ΅ ΠΈ Австралии.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python сСгодня построСно Π½Π° Django.

Колба

Flask — это Β«ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΒ» для Python, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ для создания Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, API ΠΈ Π²Π΅Π±-сСрвисов.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Flask Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° написаниС стандартных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Python. Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ функциям ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹. Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ красиво.

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Flask Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Π΅Π±-прилоТСния framework, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL-адрСсов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Flask, Π²Π°ΠΌ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для вашСго ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ссли Π΅ΡΡ‚ΡŒ. НапримСр, доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ созданиС Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π΅ являСтся встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Flask.

Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π²Π΅Π±-прилоТСниям эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ это Π΄Π΅Π»Π°Π΅Ρ‚, Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ДоступныС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ ваши потрСбности. Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ сами!

Flask — это Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для любого Π²Π΅Π±-прилоТСния Python, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Django.

Π‘ΠΎΠΊΠΎΠ»

Falcon — Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€, ΠΊΠΎΠ³Π΄Π° ваша Ρ†Π΅Π»ΡŒ для создания быстрых ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… микросСрвисов RESTful API.

Π­Ρ‚ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Python для создания ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… сСрвСрныС части ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ микросСрвисы. Falcon поощряСт Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ REST сопоставлСниС URI-адрСсов с рСсурсами, ΡΡ‚Π°Ρ€Π°ΡΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ ΠΏΡ€ΠΈ этом высокоэффСктивным.

Falcon выдСляСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основных направлСния: ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.Он Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ HTTP Ρ‡Π΅Ρ€Π΅Π· «рСспондСнты», Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ on_get () , on_put () ΠΈ Ρ‚. Π”. Π­Ρ‚ΠΈ рСспондСнты ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ².

Π’ΠΎΡ€Π½Π°Π΄ΠΎ

Tornado — асинхронный Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Python, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ собствСнный Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий. Π­Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ НапримСр, WebSockets. Π₯ΠΎΡ€ΠΎΡˆΠΎ написанныС прилоТСния Tornado извСстны ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ эксплуатационными характСристиками.

Π― Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Tornado, Ссли Π²Ρ‹ Π½Π΅ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½.

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°

Pyramid — ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΉ каркас с тяТСлым ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΡŒΡ‚Π΅ΡΡŒ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ΡΡ с нСбольшим количСством Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (Β«Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠΈΒ»). встроСн, ΠΈ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Набор ΠΈΠ· ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ cookiecutter ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… частСй инфраструктуры Python. PyPI.

Pyramid Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ большой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π±Π°Π·Ρ‹, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Django ΠΈ Flask. Π­Ρ‚ΠΎ способный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, Π½ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ популярный Π²Ρ‹Π±ΠΎΡ€ для Π½ΠΎΠ²ΠΎΠΉ сСти Python прилоТСния сСгодня.

ΠœΠ°Π·ΠΎΠ½ΠΈΡ‚

Masonite — это соврСмСнный ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ «с Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠ°ΠΌΠΈΒ».

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Masonite слСдуСт Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ MVC (модСль-прСдставлСниС-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€) ΠΈ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Rails ΠΈ Laravel, поэтому, Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Python с Ρ„ΠΎΠ½Π° Ruby ΠΈΠ»ΠΈ PHP, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΠΊΠ°ΠΊ Π΄ΠΎΠΌΠ°!

Masonite поставляСтся с мноТСством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ IOC с автоматичСским Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ зависимостСй, инструмСнты ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для ΠΊΡ€Π°Ρ„Ρ‚Π° ΠΈ ORM Π² стилС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ записи Orator.

Masonite идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Он ΡƒΠΏΠΎΡ€Π½ΠΎ трудится, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ быстрым ΠΈ простым ΠΎΡ‚ установки Π΄ΠΎ развСртывания. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΈ Π²Ρ‹ Π²Π»ΡŽΠ±ΠΈΡ‚Π΅ΡΡŒ.

FastAPI

FastAPI — это соврСмСнный Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания API с Python 3.6+.

Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ основан Π½Π° Starlette ΠΈ Pydantic.

FastAPI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартныС объявлСния Ρ‚ΠΈΠΏΠΎΠ² Python Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Ρ‚Π΅Π»Π° запроса, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… (ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π°Π½Π°Π»ΠΈΠ·), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ автоматичСская докумСнтация API с OpenAPI 3 (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JSON Schema ).

Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ инструмСнты ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для бСзопасности ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ OAuth3 с JWT Ρ‚ΠΎΠΊΠ΅Π½Ρ‹), систСма внСдрСния зависимостСй, автоматичСская гСнСрация ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ API докумСнтация ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ WSGI

АвтономныС сСрвСры WSGI ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ мСньшС рСсурсов, Ρ‡Π΅ΠΌ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π²Π΅Π±-сСрвСры. сСрвСры ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Gunicorn

Gunicorn (Π—Π΅Π»Π΅Π½Ρ‹ΠΉ Π΅Π΄ΠΈΠ½ΠΎΡ€ΠΎΠ³) — это WSGI Π½Π° чистом Python сСрвСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для обслуТивания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python.Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Π±-сСрвСров Python, Ρƒ Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, ΠΎΠ½ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ прост Π² использовании ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.

Gunicorn ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ ΠΈ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСрвСры, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ uWSGI, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ настраиваСмы ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Gunicorn сСгодня рСкомСндуСтся для Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ΠΊΠ°

ΠžΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ΠΊΠ° — это WSGI-сСрвСр Π½Π° чистом Python ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заявляСт ΠΎ Β«ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ».Π•Π³ΠΎ докумСнтация Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ, Π½ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приятныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Gunicorn (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, буфСризация HTTP-запросов).

ΠžΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ΠΊΠ° Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² сообщСствС Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Python.

uWSGI

uWSGI — это ΠΏΠΎΠ»Π½Ρ‹ΠΉ стСк для построСния услуги хостинга. Помимо управлСния процСссами, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ процСссов, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, uWSGI дСйствуСт ΠΊΠ°ΠΊ сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языки программирования ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Python ΠΈ WSGI.uWSG Π― ΠΌΠΎΠ³Ρƒ Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Π²Π΅Π±-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π·Π° ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ сСрвСр (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Nginx ΠΈΠ»ΠΈ Apache). Π’ послСднСм случаС Π²Π΅Π±-сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ uWSGI ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» uwsgi. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π±-сСрвСра uWSGI позволяСт динамичСски Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Python, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды ΠΈ дальнСйшая настройка. Для получСния ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ магию uWSGI ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π― Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ uWSGI, Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½.

Π₯остинг

Platform-as-a-Service (PaaS) — это Ρ‚ΠΈΠΏ инфраструктуры ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… вычислСний. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ абстрагируСт ΠΈ управляСт инфраструктурой, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ сСти ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.ΠŸΡ€ΠΈ использовании PaaS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° написании ΠΊΠΎΠ΄ прилоТСния вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ подробности.

Heroku

Heroku ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΊΠ»Π°ΡΡΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Python 2.7–3.5.

Heroku ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС Ρ‚ΠΈΠΏΡ‹ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сСрвСров ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Heroku бСсплатно. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ производству, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Hobby ΠΈΠ»ΠΈ Professional.

Heroku ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ использованию Python с Heroku, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции ΠΏΠΎ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Heroku — это Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ PaaS для развСртывания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python сСгодня.

Π¨Π°Π±Π»ΠΎΠ½Ρ‹

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ WSGI ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° HTTP-запросы для обслуТивания содСрТимого Π² HTML. ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовый ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΠ· Python, концСпция раздСлСния отвСтствСнности совСтуСт Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. А ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ шаблонов управляСт Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² шаблонов с систСмой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ повторСния, ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ (гСнСрация) фактичСского ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ статичСским ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ шаблонов с динамичСским ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ, создаваСмым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Как Ρ„Π°ΠΉΠ»Ρ‹ шаблонов ΠΈΠ½ΠΎΠ³Π΄Π° написано Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ интСрфСйсными Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

НСкоторыС ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ части прохоТдСния заявки. динамичСский ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ для ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° шаблонов ΠΈ самих шаблонов.

  • Π€Π°ΠΉΠ»Ρ‹ шаблонов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ динамичСским ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° шаблона. Π˜Π·Π±Π΅Π³Π°Ρ‚ΡŒ соблазн ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Β«Π½Π° всякий случай»: ΠΏΡ€ΠΈ нСобходимости ΠΏΡ€ΠΎΡ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‡Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вСроятная Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ пСрСмСнная ΠΏΠΎΠ·ΠΆΠ΅.
  • МногиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ шаблонов Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ назначСния Π² самом шаблонС, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄ Python Π² ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. Π­Ρ‚ΠΎ удобство ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ΡΡ ΠΈ часто Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡŽΡ‚ поиск ошибок.
  • Часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ JavaScript с HTML-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹. Π Π°Π·ΡƒΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ этому Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ — ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… шаблон HTML ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ содСрТимоС Π² ΠΊΠΎΠ΄ JavaScript.

Jinja2

Jinja2 — ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡˆΠΈΠΉ сСбя ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€.

Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ тСкстовый ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ язык ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ HTML. Он позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, Ρ‚Π΅Π³ΠΈ, тСсты, ΠΈ Π³Π»ΠΎΠ±Π°Π»Ρ‹. Π’ Π½Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с систСмой шаблонов Django.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ HTML-Ρ‚Π΅Π³ΠΈ Π² Jinja2:

 {# Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ #}

{# Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³ являСтся Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: #}
{{Π·Π°Π³Π»Π°Π²ΠΈΠ΅}}

{# Π’Π΅Π³ для Π±Π»ΠΎΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½ посрСдством наслСдования Π΄Ρ€ΡƒΠ³ΠΈΠΌ html-ΠΊΠΎΠ΄ΠΎΠΌ #}
{% block head%}
 

Π­Ρ‚ΠΎ Π³ΠΎΠ»ΠΎΠ²Π°!

{% endblock%} {# Π’Ρ‹Π²ΠΎΠ΄ массива Π² Π²ΠΈΠ΄Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ #} {% для элСмСнта Π² спискС%}
  • {{item}}
  • {% endfor%}

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ объявлСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π²Π΅Π±-сайта Π² сочСтании с Tornado Π²Π΅Π± сСрвСр.Π’ΠΎΡ€Π½Π°Π΄ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ слоТСн Π² использовании.

     # import Jinja2
    ΠΈΠ· срСды ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° jinja2, FileSystemLoader
    
    # import Tornado
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ tornado.ioloop
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ tornado.web
    
    # Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» шаблона templates / site.html
    TEMPLATE_FILE = "site.html"
    templateLoader = FileSystemLoader (searchpath = "templates /")
    templateEnv = Π‘Ρ€Π΅Π΄Π° (Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ = templateLoader)
    template = templateEnv.get_template (TEMPLATE_FILE)
    
    # Бписок для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° извСстных Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ²
    movie_list = [[1, «Автостопом ΠΏΠΎ Π“Π°Π»Π°ΠΊΡ‚ΠΈΠΊΠ΅Β»], [2, «Назад Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅Β»], [3, Β«ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°Β»]]
    
    # шаблон.render () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ отрисованный html
    html_output = template.render (список = список_Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ²,
                            title = "Π’ΠΎΡ‚ ΠΌΠΎΠΉ список Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ²")
    
    # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ страницы
    класс MainHandler (tornado.web.RequestHandler):
        def get (self):
            # Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ строку шаблона Π² запрос Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°
            self.write (html_output)
    
    # ΠΠ°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΡ€Π½ΡŽ сСрвСра (127.0.0.1:PORT/)
    application = tornado.web.Application ([
        (r "/", MainHandler),
    ])
    ПОРВ = 8884
    Ссли __name__ == "__main__":
        # ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр
        заявлСниС.ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ (ПОРВ)
        tornado.ioloop.IOLoop.instance (). start ()
     

    Π€Π°ΠΉΠ» base.html ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС основы для всСх страниц сайта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

     
    
    
    
        
         {{title}} - Моя Π²Π΅Π±-страница 
    
    
    
    {# Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ с сайта.html шаблон Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ #} {% Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТаниС%} {% endblock%}
    {% Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»%} & ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ; АвторскиС ΠΏΡ€Π°Π²Π° 2013 ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π²Π°ΠΌ . {% endblock%}

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список — страница нашСго сайта ( site.html ), загруТСнная Π² Python ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ base.html . Π‘Π»ΠΎΠΊ содСрТимого устанавливаСтся автоматичСски Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ Π½Π° страницС base.html .

     {% extends "base.html "%}
    {% Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТаниС%}
        

    {{title}}

    {{list_title}}

      {% для элСмСнта Π² спискС%}
    • {{item [0]}}: {{item [1]}}
    • {% endfor%}

    {% endblock%}

    Jinja2 — это рСкомСндуСмая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° шаблонов для Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python.

    Π₯Π°ΠΌΠ΅Π»Π΅ΠΎΠ½

    Π¨Π°Π±Π»ΠΎΠ½Ρ‹ страниц-Ρ…Π°ΠΌΠ΅Π»Π΅ΠΎΠ½ΠΎΠ² — это шаблон HTML / XML. рСализация Π΄Π²ΠΈΠΆΠΊΠ° языка Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² шаблонов (TAL), Бинтаксис выраТСния TAL (TALES), ΠΈ синтаксисы Macro Expansion TAL (Metal).

    Chameleon доступСн для Python 2.5 ΠΈ Π²Ρ‹ΡˆΠ΅ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ 3.x ΠΈ PyPy), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Pyramid Framework.

    Π¨Π°Π±Π»ΠΎΠ½Ρ‹ страниц Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² структуру Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ элСмСнтов. ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° тСкста. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Π±ΠΎΡ€ простых языковых конструкций, Π²Ρ‹ управляСтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ элСмСнтов, Π·Π°ΠΌΠ΅Π½Π° тСкста ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. Π’Π°ΠΊ ΠΊΠ°ΠΊ синтаксиса Π½Π° основС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², нСотрисованныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ страниц ΡΠ²Π»ΡΡŽΡ‚ΡΡ допустимым HTML ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ Π΄Π°ΠΆΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… WYSIWYG.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ двустороннСС сотрудничСство с Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ созданиС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² со статичСскими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΡ€ΠΎΡ‰Π΅.

    Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ язык TAL достаточно прост, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

     
      
       

    ЗдравствуйтС,

    ΠœΠΈΡ€ ! <Ρ‚Π°Π±Π»ΠΈΡ†Π°>

    Π¨Π°Π±Π»ΠΎΠ½ для вставки тСкста являСтся распространСнным достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹, Ссли Π²Π°ΠΌ Π½Π΅ трСбуСтся строгая Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π² Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ синтаксисом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ шаблон $ {Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅} , Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

     
      
         

    ΠŸΡ€ΠΈΠ²Π΅Ρ‚, $ {world}!

    <Ρ‚Π°Π±Π»ΠΈΡ†Π°> $ {row.capitalize ()} $ {col}

    Но ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ВСкст ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ синтаксис Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² нСотрисованном шаблонС.

    Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΈΠ· ΠΌΠΈΡ€Π° ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄, Π₯Π°ΠΌΠ΅Π»Π΅ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ распространСния.

    Мако

    Mako — это язык шаблонов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ компилируСтся Π² Python. для максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π•Π³ΠΎ синтаксис ΠΈ API заимствованы ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… частСй Π΄Ρ€ΡƒΠ³ΠΈΡ… языки шаблонов, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Django ΠΈ Jinja2.Π­Ρ‚ΠΎ шаблон ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ язык, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² ΡΠ΅Ρ‚ΡŒ Pylons ΠΈ Pyramid каркасы.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ шаблона Π² Mako выглядит Ρ‚Π°ΠΊ:

     <% inherit file = "base.html" />
    <%
        rows = [[v для v Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (0,10)] для строки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (0,10)]
    %>
    <Ρ‚Π°Π±Π»ΠΈΡ†Π°>
        % для строки Π² строках:
            $ {makerow (строка)}
        % endfor
    
    
    <% def name = "makerow (row)">
        
        % для ΠΈΠΌΠ΅Π½ΠΈ Π² строкС:
             $ {name}  \
        % endfor
        
    
     

    Для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ простого шаблона Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

     ΠΎΡ‚ mako.шаблон ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° шаблон
    print (Π¨Π°Π±Π»ΠΎΠ½ ("ΠΏΡ€ΠΈΠ²Π΅Ρ‚, $ {data}!"). render (data = "world"))
     

    Mako ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ большим ΡƒΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π²Π΅Π±-сообщСствС Python.

    Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

    Quickstart: созданиС Π²Π΅Π±-прилоТСния Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Visual Studio

    • 7 ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

    Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

    Π’ этом 5-10-ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Visual Studio ΠΊΠ°ΠΊ Python IDE Π²Ρ‹ создадитС простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python Π½Π° основС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Flask.Π’Ρ‹ создаСтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… шагов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± основных функциях Visual Studio.

    Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ установили Visual Studio, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° страницу Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Visual Studio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ бСсплатно. Π’ установщикС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Python development .

    Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ установили Visual Studio, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° страницу Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Visual Studio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ бСсплатно. Π’ установщикС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Python development .

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги ΡΠΎΠ·Π΄Π°ΡŽΡ‚ пустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для прилоТСния:

    1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Visual Studio 2017.

    2. Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строкС мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ File> New> Project .

    3. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ New Project Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«Python Web ProjectΒ» Π² ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Ρ€Ρ…Ρƒ справа, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Web project Π² срСднСм спискС, Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ имя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«HelloPythonΒ», Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK. .

      Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Python, запуститС установщик Visual Studio , Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ > Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ , Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Python , Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ .

    4. Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ откроСтся Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ пуст, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ содСрТит Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

    1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Visual Studio 2019.

    2. На Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ экранС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ .

    3. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Create a new project Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«Python webΒ» Π² ΠΏΠΎΠ»Π΅ поиска Π²Π²Π΅Ρ€Ρ…Ρƒ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Web Project Π² срСднСм спискС, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Next :

      Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Python, запуститС установщик Visual Studio , Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ > Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ , Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Python , Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ .

    4. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Configure your new project Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Β«HelloPythonΒ» для Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° , ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ мСстополоТСниС ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Create . (Имя Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ автоматичСски устанавливаСтся Π² соотвСтствии с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° .)

    5. Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ откроСтся Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ пуст, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ содСрТит Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

    Вопрос: Π’ Ρ‡Π΅ΠΌ прСимущСство создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Visual Studio для прилоТСния Python?

    ΠžΡ‚Π²Π΅Ρ‚ : ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Python ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с использованиСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ эта простая структура ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ прилоТСния становятся большС ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ автоматичСски сгСнСрированныС Ρ„Π°ΠΉΠ»Ρ‹, JavaScript для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚. Π”. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Visual Studio ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с этой ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ (Π° .pyproj file) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ всС исходныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ содСрТимого, связанныС с вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сборкС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с систСмами управлСния вСрсиями ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² логичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

    Вопрос. КакоС Β«Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Β» отобраТаСтся Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ?

    ΠžΡ‚Π²Π΅Ρ‚ : РСшСниС Visual Studio — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими связанными ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π΅ относящиСся ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ запускС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (прилоТСния Python) автоматичСски создаСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ C ++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Python).

    УстановитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Flask

    Π’Π΅Π±-прилоТСния

    Π½Π° Python ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… доступных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Π²Π΅Π±-запросов ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Для этой Ρ†Π΅Π»ΠΈ Visual Studio прСдоставляСт мноТСство шаблонов для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Π² этом ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ руководствС.

    Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Flask Π² Β«Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ срСду» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Visual Studio ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΡƒΠ·Π΅Π» Python Environments Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ срСду ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ срСду ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Python . Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ Python Environments Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Packages .

    3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Β«ΠΊΠΎΠ»Π±Π°Β» Π² ΠΏΠΎΠ»Π΅ поиска ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ pip install flask ΠΈΠ· PyPI . ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ запросы Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² администратора ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° ΠΎΠΊΠ½ΠΎΠΌ Output Π² Visual Studio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ…ΠΎΠ΄Π΅ выполнСния. (Запрос Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² появляСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΏΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для глобальной срСды находится Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ области, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C: \ Program Files .)

    1. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΡƒΠ·Π΅Π» Python Environments Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ срСду ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ срСду ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Manage Python Packages … . Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ Python Environments Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Packages (PyPI) .

    3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Β«ΠΊΠΎΠ»Π±Π°Β» Π² ΠΏΠΎΠ»Π΅ поиска. Если ΠΏΠΎΠ΄ ΠΎΠΊΠ½ΠΎΠΌ поиска появляСтся Flask , этот шаг ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: pip install flask . ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ запросы Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² администратора ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° ΠΎΠΊΠ½ΠΎΠΌ Output Π² Visual Studio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ…ΠΎΠ΄Π΅ выполнСния.(Запрос Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² появляСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΏΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для глобальной срСды находится Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ области, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C: \ Program Files .)

    1. ПослС установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° появится Π² срСдС Solution Explorer , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² ΠΊΠΎΠ΄Π΅ Python.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² глобальной срСдС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Β«Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Visual Studio ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Быстрый старт — созданиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Python с использованиСм шаблона».

    Вопрос: Π“Π΄Π΅ я ΠΌΠΎΠ³Ρƒ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… доступных ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… Python?

    ΠžΡ‚Π²Π΅Ρ‚ : ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python.

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ΄Π°

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Python для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ минимального Π²Π΅Π±-прилоТСния.

    1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ> Новый элСмСнт .

    2. Π’ появившСмся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΡƒΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» Python , Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ app.py ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ . Visual Studio автоматичСски ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» Π² ΠΎΠΊΠ½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

    3. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² app.py :

        ΠΈΠ· ΠΊΠΎΠ»Π±Ρ‹ импортная ΠΊΠΎΠ»Π±Π°
      
      # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ экзСмпляр класса Flask, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ WSGI.
      # ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ - это имя модуля ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния,
      # ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ __name__ ΠΏΡ€ΠΈ использовании ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля.app = Flask (__ имя__)
      
      # Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Flask map / ΠΈ / hello для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ hello.
      # Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы, создайтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ содСрТимоС страницы
      # ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для Π½ΠΈΡ… подходящиС Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ рСсурсов.
      
      @ app.route ('/')
      @ app.route ('/ ΠΏΡ€ΠΈΠ²Π΅Ρ‚')
      def ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ():
          # ΠžΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ страницу
          Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ "Hello Python!"
      
      Ссли __name__ == '__main__':
          # ЗапускаСм сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° localhost: 4449
          app.run ('Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ хост', 4449)
        
    4. Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ> Новый элСмСнт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ класс Python, ΠΏΠ°ΠΊΠ΅Ρ‚ Python, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ тСст Python, web.config ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, эти Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ элСмСнтов — ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ стандартным ΠΊΠΎΠ΄ΠΎΠΌ.

    Вопрос: Π“Π΄Π΅ я ΠΌΠΎΠ³Ρƒ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Flask?

    ΠžΡ‚Π²Π΅Ρ‚ : ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Flask, начиная с Flask Quickstart.

    ЗапускаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

    1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ app.py Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» запуска .Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° опрСдСляСт Ρ„Π°ΠΉΠ» ΠΊΠΎΠ΄Π° для запуска Π² Python ΠΏΡ€ΠΈ запускС прилоТСния.

    2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Properties . Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Debug ΠΈ установитС для свойства Port Number Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4449 . Π­Ρ‚ΠΎΡ‚ шаг Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Visual Studio запустит Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ с localhost: 4449 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ app.run Π² ΠΊΠΎΠ΄Π΅.

    3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Debug> Start Without Debugging ( Ctrl + F5 ), Ρ‡Ρ‚ΠΎ сохраняСт измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ запускаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

    4. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с сообщСниСм Running in https: // localhost: 4449 , Π° Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΡΡ localhost: 4449 , Π³Π΄Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС Β«Hello, Python!Β» Запрос GET Ρ‚Π°ΠΊΠΆΠ΅ отобраТаСтся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ со статусом 200.

      Если Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π΅ открываСтся автоматичСски, запуститС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу localhost: 4449 .

      Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Python Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΈΠ»ΠΈ Ссли это ΠΎΠΊΠ½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΈΠ³Π°Π΅Ρ‚ Π½Π° экранС, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ установили ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ .py Π² качСствС Ρ„Π°ΠΉΠ»Π° запуска Π½Π° шагС 1 Π²Ρ‹ΡˆΠ΅.

    5. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ localhost: 4449 / hello , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ для рСсурса / hello Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, запрос GET появляСтся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ со статусом 200. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ URL-адрСс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ΄Ρ‹ состояния 404 Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅.

    6. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

    Вопрос: Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈΒ» ΠΈ Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒΒ»?

    ΠžΡ‚Π²Π΅Ρ‚ : ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для запуска прилоТСния Π² контСкстС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Visual Studio, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ поэтапно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ построчно.ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π»ΠΎΠ²ΡƒΡˆΠ΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. Запуск Π±Π΅Π· ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ , Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², запускаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ Π²Ρ‹ запускали Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π±Π΅Π· контСкста ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски запускаСт Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ URL-адрСсу, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Debug свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги

    ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ с запуском вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прилоТСния Python ΠΈΠ· Visual Studio, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎΠ± использовании Visual Studio Π² качСствС Python IDE!

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π² этом ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ руководствС, носят довольно ΠΎΠ±Ρ‰ΠΈΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, Π²Ρ‹, вСроятно, догадались, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.Вакая автоматизация — Ρ€ΠΎΠ»ΡŒ шаблонов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Visual Studio. ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Быстрый старт — Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ шаблон для дСмонстрации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ создали Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π½ΠΎ с мСньшим количСством шагов.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ руководства ΠΏΠΎ Python Π² Visual Studio, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ использованиС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Git, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ Β«Π£Ρ‡Π΅Π±Π½ΠΈΠΊ: Π½Π°Ρ‡Π°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Python Π² Visual StudioΒ».

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ возмоТностях Visual Studio, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкам Π½ΠΈΠΆΠ΅.

    5 Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Ρ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Python

    Когда Π²Ρ‹ создаСтС ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ для Π²Π΅Π±-сайта ΠΈΠ»ΠΈ слуТбы, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся скромной, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это совсСм Π½Π΅ Ρ‚Π°ΠΊ. Π”Π°ΠΆΠ΅ «простой» сайт прСвращаСтся Π² ΡƒΠ»Π΅ΠΉ слоТности. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ„ΠΎΡ€ΠΌ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ — Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСго этого Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ становится ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

    Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится всС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΡƒΡ…ΠΎΠ½Π½ΡƒΡŽ Ρ€Π°ΠΊΠΎΠ²ΠΈΠ½Ρƒ, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, которая поставляСтся с батарСями (ΠΈ зарядными устройствами) Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅.Π’ΠΎΡ‚ ΠΏΡΡ‚ΡŒ тяТСлых Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для создания Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

    CubicWeb

    CubicWeb позиционируСтся ΠΊΠ°ΠΊ «срСда сСмантичСского Π²Π΅Π±-прилоТСния, которая способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½ΡƒΒ». Π­Ρ‚ΠΎ ΠΈΠ½Ρ‚Ρ€ΠΈΠ³ΡƒΡŽΡ‰Π°Ρ систСма — ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Π ΠΈΠΊ Π“Ρ€Π΅Ρ…Π°Π½, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π» Π΅Π΅ для InfoWorld Π΅Ρ‰Π΅ Π² 2011 Π³ΠΎΠ΄Ρƒ, — которая ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ использованиС абстракций ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Β«ΠΊΡƒΠ±Π°ΠΌΠΈΒ». ЀактичСски, CubicWeb ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слишком абстрактным ΠΈΠ»ΠΈ своСобразным для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π° Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ΡΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

    ΠšΡƒΠ±Ρ‹ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат схСму (модСль Π΄Π°Π½Π½Ρ‹Ρ…), сущности (Π»ΠΎΠ³ΠΈΠΊΡƒ программирования) ΠΈ прСдставлСния. Бобирая нСсколько ΠΊΡƒΠ±ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСт свою Π·Π°Π΄Π°Ρ‡Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ прилоТСния, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свой собствСнный ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΡ….

    По своСй сути CubicWeb прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ каркасы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ: Β«Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ» для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ…; Β«Π²Π΅Π±-Π΄Π²ΠΈΠΆΠΎΠΊΒ» для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… HTTP-запросов / ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈ дСйствий CRUD; ΠΈ схСма для модСлирования Π΄Π°Π½Π½Ρ‹Ρ…. ВсС это описано Π² опрСдСлСниях классов Python.

    Для настройки экзСмпляров CubicWeb ΠΈ управлСния ΠΈΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Django. ВстроСнная систСма шаблонов позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ HTML. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡƒΠ±, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт инструмСнты для Π²Π΅Π±-интСрфСйсов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Bootstrap HTML.

    Π₯отя CubicWeb ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Python 3 (начиная с вСрсии 3.23), ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² Python 3 Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠžΠ±Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ способом Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ async Π±Ρ‹Π»ΠΎ Π±Ρ‹ использованиС cubicweb.pyramid, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Pyramid Π² качСствС Π²Π΅Π±-сСрвСра ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Pyramid, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ асинхронныС конструкции. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ асинхронно с ΠΊΡƒΠ±ΠΎΠΌ cubicweb-worker. Но Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ простоС ΠΏΠΎΠΊΠ° каТСтся нСдосягаСмым.

    Для извлСчСния ΠΈΠ»ΠΈ управлСния постоянными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ CubicWeb Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ язык запросов ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ (RQL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° SQL синтаксис, Π½ΠΎ построСн ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ SparQL ΠΎΡ‚ W3C. ΠžΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ CubicWeb для этого ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ — абстракция: RQL прСдоставляСт сильно развязанный ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ для взаимосвязи Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников Π΄Π°Π½Π½Ρ‹Ρ….

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ CubicWeb ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство зависимостСй, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pip install , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… всС. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ срСду. Π­Ρ‚ΠΎ отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π³Π΄Π΅ всС, Ρ‡Ρ‚ΠΎ трСбуСтся, — это Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ pip install ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

    CubicWeb Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ свою ΠΎΠ±ΡˆΠΈΡ€Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Β«ΠΊΠ½ΠΈΠ³ΠΎΠΉ.Авторы ΠΊΠ½ΠΈΠ³ΠΈ нашли врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ CubicWeb, ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ссылки Π½Π° API ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ.

    CubicWeb всС Π΅Ρ‰Π΅ находится Π² стадии Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, хотя ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠ»Π°Π½Ρ‹ Π½Π° CubicWeb 4.0 Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ с 2012 Π³ΠΎΠ΄Π°, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ сроки Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

    Django

    Π—Π° дСсятилСтиС ΠΈ измСнСния, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ появлСния Django, ΠΎΠ½ стал ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Python для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Django поставляСтся с ΠΏΠΎΡ‡Ρ‚ΠΈ всСми батарСями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ подходящим для создания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Π΅ΠΌ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ….

    Django ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ сидСл Π·Π° вСрсиСй 1.x. Когда Π² ΠΊΠΎΠ½Ρ†Π΅ 2017 Π³ΠΎΠ΄Π° появился Django 2.0, ΠΎΠ½ отказался ΠΎΡ‚ совмСстимости с Python 2 Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Python 3.4 ΠΈ Π²Ρ‹ΡˆΠ΅. Django 3.0, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 2019 Π³ΠΎΠ΄Π°, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Python 3.6 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ ΠΈ добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ асинхронного стандарта ASGI для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python.

    ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Django являСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ развСртывания.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Django Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ частСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π²Π΅Π±-прилоТСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ, парсинг URL, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ORM (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-рСляционноС сопоставлСниС), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊ ΠΈ созданиС шаблонов — всС это встроСно.

    Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных сцСнариСв Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НапримСр, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π²Π΅Π±-сайтов, поэтому Django ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ стандартный элСмСнт. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ систСму для отслСТивания ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, сСансов, ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, Π²Ρ…ΠΎΠ΄ΠΎΠ² / Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ², Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ администратора ΠΈ Ρ‚. Π”., Django прСдоставляСт эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ.Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями.

    Django ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ ΠΈ бСзопасныС настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ. Когда Π²Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² шаблон страницы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ строку с HTML ΠΈΠ»ΠΈ JavaScript, содСрТимоС Π½Π΅ отобраТаСтся Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ явно Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚Π΅ экзСмпляр ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ бСзопасный. Π­Ρ‚ΠΎ само ΠΏΠΎ сСбС устраняСт ΠΌΠ½ΠΎΠ³ΠΈΠ΅ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ мСТсайтового скриптинга. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС, ΠΎΡ‚ простой Π·Π°Ρ‰ΠΈΡ‚Ρ‹ CSRF Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ полю, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

    Π’Π°ΠΊΠΎΠΉ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠ°ΠΊ Ρƒ Django, Π½Π΅ Π±Ρ‹Π» Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆ Π±Π΅Π· Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Django ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассматриваСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ аспСкт Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° с Ρ€Π°Π·Π½Ρ‹Ρ… сторон. Π Π°Π±ΠΎΡ‚Π° с Python 3 ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ разновидностями языка, обСспСчСниС бСзопасности, рСализация ΠΎΠ±Ρ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сСансы ΠΈΠ»ΠΈ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° страницы), созданиС ΠΊΠ°Ρ€Ρ‚ сайта — всС это ΠΎΡ…Π²Π°Ρ‡Π΅Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны API-интСрфСйсы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ уровня прилоТСния — ΠΌΠΎΠ΄Π΅Π»ΠΈ, прСдставлСния ΠΈ шаблона.

    Однако большая ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ сопряТСна с большими слоТностями. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Django ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ тяТСловСсных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с мноТСством двиТущихся частСй. Π”Π°ΠΆΠ΅ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк для запуска. Если ваша Ρ†Π΅Π»ΡŒ — ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС, Ρ‡Π΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ простых ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ REST, Django ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка окаТСтся излишним.

    Π£ Django Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Ρ‹. НапримСр, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ страниц Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ {{user.name}} ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² шаблонС, Π½ΠΎ Π½Π΅ {{user.get_name ()}} . Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Django Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ случайно Π²Ρ‹ΡΡ‚Ρ€Π΅Π»ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π² Π½ΠΎΠ³Ρƒ, Π½ΠΎ эти ограничСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π½ΠΈΠΌ. Π₯отя Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, ΠΎΠ½ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

    Начиная с вСрсии 3.0, Π² Django Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​поддСрТка асинхронных прСдставлСний. К соТалСнию, ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ асинхронности Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… частях стСка Django, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ORM. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Django с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ASGI, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ асинхронныС прСдставлСния.

    Web2py

    Π’ ΠΌΠΈΡ€Π΅ программирования Π½Π° Ruby Ruby on Rails фактичСски являСтся Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΎΡ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ УнивСрситСта Π”Π΅ΠŸΠΎΠ»Π° Массимо Π”ΠΈ ΠŸΡŒΠ΅Ρ€Ρ€ΠΎ Π±Ρ‹Π» Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½ Rails Π½Π° созданиС Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ‚Π°ΠΊ ΠΆΠ΅ прост Π² настройкС ΠΈ использовании. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ — Web2py.

    Бамая большая ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Web2py — это встроСнная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Когда Π²Ρ‹ настраиваСтС экзСмпляр Web2py, Π²Π°ΠΌ прСдоставляСтся Π²Π΅Π±-интСрфСйс, ΠΏΠΎ сути, ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ прилоТСния.ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, прСдставлСний ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… описываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Python ΠΈΠ»ΠΈ HTML-шаблонов. НСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Web2py ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… шаблонов для создания собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

    Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Web2py, загруТая Π΅Π³ΠΎ исходный ΠΊΠΎΠ΄ ΠΈ ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Π½Π΅Π³ΠΎ. Но для ΠΌΠ΅Π½Π΅Π΅ тСхничСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows ΠΈΠ»ΠΈ MacOS создатСли Web2py ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ вСрсии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌΠΈ сСрвСрами.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅, распакуйтС ΠΈ запуститС ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих вСрсий, ΠΈ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сСрвСр со встроСнной ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ настроСнной ΠΊΠΎΠΏΠΈΠ΅ΠΉ Web2py. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСимущСство ΠΏΡ€ΠΈ создании прилоТСния Web2py, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

    Π’Π΅Π±-интСрфСйс Web2py Π±Ρ‹Π» построСн с использованиСм Bootstrap 4, поэтому ΠΎΠ½ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Π³Π»Π°Π· ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. ВстроСнный Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π΅ замСняСт ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ IDE, Π½ΠΎ ΠΎΠ½ снабТСн ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ срСдствами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ нумСрация строк ΠΈ подсвСтка синтаксиса Python (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ автоматичСский отступ).Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ быстрый Π²Π΅Π±-интСрфСйс для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Python, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Web2py ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки — приятная уступка для экспСртов.

    БистСма абстракции Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² Web2py, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ ORM Django ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ORM, созданныС Π½Π° Π΅Π΅ основС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Peewee). Π­Ρ‚ΠΈ систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ классы Python для опрСдСлСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Web2py ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-конструкторы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ define_table , для создания экзСмпляров ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Различия, скорСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π·ΠΊΠΈΠΌΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ; ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².Π£ вас вряд Π»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Web2py ΠΊ поставщику Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ взаимодСйствуСт практичСски со всСми ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

    Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, связанной с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π² Web2py являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ваши ΠΌΠΎΠ΄Π΅Π»ΠΈ связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Однако Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ PyGraphviz, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

    Web2py прСдоставляСт мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π°ΠΆΠ΅ интСрфСйсныС эффСкты (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π±ΠΎΡ€ Π΄Π°Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ…) Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ jQuery ΠΈ AJAX.Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ…ΡƒΠΊΠΈ для внСшнСго ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, хотя Π²Π°ΠΌ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для Π·Π°ΠΌΠ΅Π½Ρ‹ основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Web2py. Однако ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ явного использования асинхронных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Python Π² Web2py, хотя Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ выполняСмых Π·Π°Π΄Π°Ρ‡.

    ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Web2py Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΠΊΠ½ΠΈΠ³ΠΎΠΉΒ». Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰Π΅Π΅ количСство ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ Web2py, Python ΠΈ срСдам развСртывания, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для ΠΎΠ±ΠΎΠΈΡ…. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΠ½ написан Π² доступном ΠΏΠΎΠ²Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ стилС.Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Π² Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказываСтся ΠΎΠ± ΠΎΠ±Ρ‰ΠΈΡ… сцСнариях создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. НапримСр, Π΅ΡΡ‚ΡŒ цСлая Π³Π»Π°Π²Π° ΠΎΠ± использовании jQuery для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ AJAX.

    Weppy

    Weppy чувствуСт сСбя Π½Π° ΠΏΠΎΠ»ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ минимальной простотой Flask ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ‚ΠΎΠΉ Django. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния Weppy отличаСтся простотой Flash, Weppy ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² Django, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΡ€ΠΎΠ²Π½ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ аутСнтификация. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Weppy ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простых Π΄ΠΎ ΡƒΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ слоТных.

    На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΊΠΎΠ΄ Weppy ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΊΠΎΠ΄ Flask ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ Bottle. Для запуска ΠΈ запуска Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-сайта с ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠΌ трСбуСтся нСсколько инструкций. ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ описаны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (простой способ) ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π° синтаксис для этого Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Flask / Bottle. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² синтаксисС.

    Weppy отличаСтся ΠΎΡ‚ этих Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² качСствС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ»ΠΈ надстроСк.НапримСр, Π½ΠΈ Flask, Π½ΠΈ Bottle Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнного ORM ΠΈΠ»ΠΈ систСмы управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Weppy Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ORM, хотя ΠΈ основанный Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ pyDAL, Π° Π½Π΅ Π½Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ популярном SQLAlchemy. Weppy Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ схСм, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Django ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ своСй ORM (систСма ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Django Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°). Π₯отя Ρƒ Weppy Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, список ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π½Ρ‹Ρ… надстроСк ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС, Ρ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для Flask.

    Π‘ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Weppy, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания RESTful API, ΠΈ Weppy поставляСтся с ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ функциями для этой Ρ†Π΅Π»ΠΈ.ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ @service Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π²Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON ΠΈΠ»ΠΈ XML ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ.

    Weppy Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ каТутся Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ структурС, Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π±Π΅Π· большого объСма. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„ΠΎΡ€ΠΌ, ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ΠΎ всСх этих случаях Weppy ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Β«Ρ€ΠΎΠ²Π½ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎΒ». ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠΎΠ»Π½Ρ‹, ΠΊΠ°ΠΊ Π² Django ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… тяТСлых Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, ΠΈ ΠΎΠ½ΠΈ всСгда ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ постфактум.

    Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ваТная функция Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Weppy — это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² соотвСтствии с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ, прСдоставлСнными с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой простыС словари Python. Π’Ρ‹Π±ΠΎΡ€ языка Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСн ΠΏΡƒΡ‚Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° запроса Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Accept-Language) ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ привязки ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ.

    ДокумСнтация Weppy ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° сам Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Он чистый, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΈ написан для использования людьми.Помимо ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Β«ΠΏΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€Β», ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ пошаговоС руководство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ систСму ΠΌΠΈΠΊΡ€ΠΎΠ±Π»ΠΎΠ³ΠΎΠ² Π² качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    Π’ долгосрочныС ΠΏΠ»Π°Π½Ρ‹ Weppy Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° async ΠΈ сокСтов ΠΊΠ°ΠΊ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… пСрвоклассных сущностСй. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Weppy ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² вСрсии 2.0, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Python 3.7 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ для всСх Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсий Weppy.

    Zope

    ПолноС руководство ΠΏΠΎ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Python

    ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Π½Π°Π±ΠΎΡ€Π΅ инструмСнтов.Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ — это Π½Π°Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, состоящий ΠΈΠ· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ написанного стандартизованного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, дСлая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ быстрСС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅, Π° ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚Β» ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ мСньшС Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

    Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² бэкэндС для сСрвСрных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, помогая Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ URL-адрСсов, HTTP-запросах ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…, доступС ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Π΅Π±-бСзопасности.Π₯отя использованиС Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π΅ трСбуСтся, Π΅Π³ΠΎ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ слоТныС прилоТСния Π·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшСС врСмя.

    Нравится ΡΡ‚Π°Ρ‚ΡŒΡ? ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠ·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π½Π°ΡˆΡƒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π½ΠΎΠ²ΠΎΡΡ‚Π½ΡƒΡŽ рассылку, Π²Ρ‹Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π΄Π²Π° Ρ€Π°Π·Π° Π² мСсяц.


    КакиС популярныС Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Python?

    Django ΠΈ Flask, с большим ΠΎΡ‚Ρ€Ρ‹Π²ΠΎΠΌ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ самыми популярными Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Python.

    Django — это Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ высокоуровнСвый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ «способствуСт быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ чистому, ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ.Β«Π­Ρ‚ΠΎ быстро, бСзопасно ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎ. Django ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сообщСства ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

    Django нСвСроятно Π³ΠΈΠ±ΠΎΠΊ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с MVP для Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Π‘ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Django, — это Instagram, Dropbox, Pinterest ΠΈ Spotify.

    ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ руководство ΠΏΠΎ Django, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Django Python? Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свою ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с нуля

    Flask считаСтся ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой минималистичный Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ.Π’ Π½Π΅ΠΌ мСньшС Β«Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠΈΒ», Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Django, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Π΅Π±-шаблонов, авторизация ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ аутСнтификация.

    Flask являСтся минималистичным ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ добавляСтС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π±Π΅Π· ΠΈΡ… автоматичСского прСдоставлСния Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ.

    Ѐилософия Flask Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ прСдоставляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ вас Π±Ρ‹Π»Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ.

    Flask Ρ‚Π°ΠΊΠΆΠ΅ являСтся распространСнной ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠΉ Π²Π΅Π±-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Netflix, Linkedin ΠΈ Uber.

    Π”Ρ€ΡƒΠ³ΠΈΠ΅ извСстныС структуры:

    • ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°
    • Web2Py
    • Ρ‚ΡƒΡ€Π±ΠΈΠ½Ρ‹

    Π§Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

    Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ сСбя: ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΌΠ½Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ? ΠžΡ‚Π²Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это зависит ΠΎΡ‚ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π². Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ свой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Если Π²Ρ‹ достаточно ΠΎΠΏΡ‹Ρ‚Π½Ρ‹, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Β«Π±Π°Ρ€Π΅Π±ΠΎΠ½Π½ΠΎΠ³ΠΎΒ».”

    Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ссли Π²Ρ‹ младший Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт большС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Django.

    Π’Π°ΠΊΠΆΠ΅ спроситС сСбя, Π²Ρ‹ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Β«Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽΒ» ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ для создания основы вашСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹? Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Django; Ссли Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Flask.

    Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈ Π²Π°ΠΆΠ½Π΅Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π° Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π»ΡƒΡ‡ΡˆΠ΅.

    Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python. Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Django | Π‘Π°Π΄Ρ€Π°Ρ… ΠŸΡŒΠ΅Ρ€, Π΄ΠΎΠΊΡ‚ΠΎΡ€ философии

    Django — это Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° основС Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-сайты Π½Π° основС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сайтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Django, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Instagram, Mozilla ΠΈ Bitbucket.

    Π’ этом постС ΠΌΡ‹ рассмотрим этапы создания простого Π²Π΅Π±-прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Django. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Django ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

    ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ!

    ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρƒ нас установлСн Django.Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Django, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pip:

     pip install django 

    Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Django:

     python -m django --version 

    ВСрсия, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ, Π½Π° врСмя ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, 2.2.6. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° нашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ first_site:

     mkdir first_site 
    cd first_site

    Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Django Π² нашСй ΠΏΠ°ΠΏΠΊΠ΅ first_site:

     django-admin startproject first_site 

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ создании структуры Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ:

    Π£ нас Π΅ΡΡ‚ΡŒ ‘manage.py Β»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° DjangoΒ« first_site Β». Π€Π°ΠΉΠ» manage.py — это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, которая позволяСт Π½Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ административныС Π·Π°Π΄Π°Ρ‡ΠΈ.

    Π€Π°ΠΉΠ» __init__.py — это пустой Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт python, Ρ‡Ρ‚ΠΎ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ являСтся ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ python. Π€Π°ΠΉΠ» Β«setting.pyΒ» позволяСт Π½Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ настройки ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. Β«Url.pyΒ» позволяСт Π½Π°ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ соотвСтствиС URL-адрСсов Ρ‚ΠΎΠΌΡƒ, ΠΊΡƒΠ΄Π° ΠΌΡ‹ отправляСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Β«Wsgi.pyΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обСспСчСния связи ΠΌΠ΅ΠΆΠ΄Ρƒ нашим сСрвСром ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π²Π΅Π±-сайт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поставляСтся с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.Π’ нашСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΌΡ‹ запускаСм:

     python manage.py runserver 

    ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

    ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ наш сайт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ сайту ΠΏΠΎ адрСсу Β«http://127.0.0.1:8000/Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Π½Π°ΡˆΠ΅ΠΌΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

    Π­Ρ‚ΠΎ Π²Π΅Π±-сайт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, созданный для нас Django. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Django Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ послС создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π΅Π±-сайта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам ΠΏΠΎ сСбС являСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прилоТСния Π² нашСм Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» Π½Π° нашСм сайтС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π» Π±Π»ΠΎΠ³Π°, Ρ€Π°Π·Π΄Π΅Π» ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ Ρ‚. Π”. Π§Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π² этой структурС, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании прилоТСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

    Π”Π°Π»Π΅Π΅ ΠΌΡ‹ создадим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π±Π»ΠΎΠ³Π° для нашСго сайта. Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ‘control’ + ‘C’, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±ΠΈΡ‚ΡŒ сСрвСр, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ нашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

    Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π±Π»ΠΎΠ³Π°, ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

     python manage.py startapp blog 

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° структуру нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ создании нашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния:

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΉΠ΄Π΅ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ нашСго Π±Π»ΠΎΠ³Π° ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» views.py ’. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

     from django.shortcuts import render # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ здСсь свои прСдставлСния. 

    Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ HttpResponse. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ создадим Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ home, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ с домашнСй страницы нашСго Π±Π»ΠΎΠ³Π°:

     ΠΈΠ· django.shortcuts import render 
    ΠΈΠ· django.http import HttpResponsedef home (request):
    return HttpResponse ( '

    Главная страница Π±Π»ΠΎΠ³Π°

    ') # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ здСсь свои просмотры.

    Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ наш шаблон URL-адрСса с этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ просмотра.ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ нашСго прилоТСния для Π±Π»ΠΎΠ³Π° ΠΈ создаСм Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«urls.pyΒ». Π’ этот Ρ„Π°ΠΉΠ» ΠΌΡ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ вставляСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

     ΠΈΠ· django.urls, ΠΏΡƒΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° 
    ΠΈΠ·. import viewsurlpatterns = [
    path ('', views.home, name = 'blog-home'),
    ]

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ URL-ΠΏΡƒΡ‚ΡŒ для домашнСй страницы нашСго Π±Π»ΠΎΠ³Π°, сопоставлСнный с нашСй домашнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ прСдставлСний.

    Π§Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ наш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ urls.py Π² основном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, first_site. Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ сообщаСт Π½Π°ΡˆΠ΅ΠΌΡƒ Π²Π΅Π±-сайту, ΠΊΠ°ΠΊΠΈΠ΅ URL-адрСса Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π°ΠΌ Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π±Π»ΠΎΠ³Π°.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» urls.py Π² нашСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ first_site:

     ΠΈΠ· django.contrib import admin 
    from django.urls import pathurlpatterns = [
    path ('admin /', admin.site.urls),
    ]

    ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сопоставляСтся с URL-адрСсами нашСго административного сайта. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с URL-адрСсами нашСго Π±Π»ΠΎΠ³Π°. Нам Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ include ΠΈΠ· django.urls ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ для URL нашСго Π±Π»ΠΎΠ³Π°:

     ΠΈΠ· django.contrib import admin 
    from django.ΠΏΡƒΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° URL-адрСсов, includeurlpatterns = [
    path ('admin /', admin.site.urls),
    path ('blog /', include ('blog.urls'))
    ]

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр я часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ошибкой:

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

     ps -ef | grep python 

    ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ процСсс:

     kill -9 processes_id 

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр:

     python manage.py runserver 

    Если ΠΌΡ‹ Π²Π²Π΅Π΄Π΅ΠΌ http://127.0.0.1:8000/blog/, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС домашнСй страницы Π±Π»ΠΎΠ³Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ†ΠΈΡ‚Π°Ρ‚Ρƒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Ρ€ΠΎΠΌΠ°Π½ΠΎΠ², Infinite Jest, Дэвида ЀостСра УоллСса:

     ΠΈΠ· django.shortcuts import render 
    from django.http import HttpResponsedef home (request):
    return HttpResponse ('

    Blog Главная

    ВсС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ Π² своСй Ρ‚Π°ΠΉΠ½ΠΎΠΉ нСвысказанной Π²Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ Π² Π³Π»ΡƒΠ±ΠΈΠ½Π΅ Π΄ΡƒΡˆΠΈ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. ')

    ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ страницу ΠΎ нашСм Π±Π»ΠΎΠ³Π΅. Π’ нашСм ΠΌΠΎΠ΄ΡƒΠ»Π΅ ‘views.py’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ‘about’:

     ΠΈΠ· django.shortcuts import render 
    from django.http import HttpResponsedef home (request):
    return HttpResponse ('

    Blog Home

    ВсС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ Π² своих Ρ‚Π°ΠΉΠ½Ρ‹Ρ… нСгласных убСТдСниях, Ρ‡Ρ‚ΠΎ Π² Π³Π»ΡƒΠ±ΠΈΠ½Π΅ Π΄ΡƒΡˆΠΈ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. ') def about (request):
    return HttpResponse ('

    About Home

    ' )

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ для нашСго Ρ€Π°Π·Π΄Π΅Π»Π° about Π² Π½Π°ΡˆΠΈΡ… URL-адрСсах.py ’в нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π»ΠΎΠ³Π°:

     ΠΈΠ· django.urls, ΠΏΡƒΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° 
    ΠΈΠ·. import viewsurlpatterns = [
    path ('', views.home, name = 'blog-home'),
    path ('about /', views.about, name = 'blog-about')
    ]

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу http://127.0.0.1:8000/blog/, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ:

    Π― ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡΡŒ Π½Π° этом, Π½ΠΎ Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с содСрТимым домашнСй страницы Π±Π»ΠΎΠ³Π° ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ нашСго Π²Π΅Π±-прилоТСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ рСсурс для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Django — это руководства ΠšΠΎΡ€ΠΈ Π¨Π°Ρ„Π΅Ρ€Π° Π½Π° YouTube, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

    Подводя ΠΈΡ‚ΠΎΠ³, Π² этом постС ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ URL-адрСсов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Django. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ обсудили ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, созданныС ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅Π±-прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Django. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π±Π»ΠΎΠ³Π° Π² нашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ просмотра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ URL-адрСс ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π»ΠΎΠ³Π°. НадСюсь, Π²Ρ‹ нашли этот пост ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ / интСрСсным. Бпасибо Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅!

    16 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… плюсов ΠΈ минусов использования Python для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

    Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ Python Π±Ρ‹Π» Π½Π°Π·Π²Π°Π½ Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠœΠΎΠ½Ρ‚ΠΈ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π°?

    Один ΠΈΠ· самых популярных языков программирования Π² ΠΌΠΈΡ€Π΅, Python Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π² ΠΊΠΎΠ½Ρ†Π΅ 80-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ΄ влияниСм языков ABC ΠΈ Modula-3.Он ΠΏΡ€ΠΎΡˆΠ΅Π» Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ своСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ выпуска Π² 1991 Π³ΠΎΠ΄Ρƒ Π΄ΠΎ выпуска 2.0, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ стал ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ ΠΏΠΎ сСй дСнь ΠΎΠ½ собираСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ сообщСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ постоянно ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ.

    НСкоторыС ΠΈΠ· Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Python Π² своих тСхнологичСских стСках:

    • Instagram — ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй, которая полагаСтся Π½Π° Python, позволяя своим 4 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими творСниями Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. альбом.
    • Spotify — ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… для управлСния функциями Radio ΠΈ Discover.
    • Disqus — этот ΠΏΠ»Π°Π³ΠΈΠ½ коммСнтирования ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 50 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² мСсяц ΠΈ доступСн Π² 19 странах.

    Python ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для мноТСства Π²Π΅Π±-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚ простых Π΄ΠΎ слоТных. Он ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сфСрах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ, Π·Π΄Ρ€Π°Π²ΠΎΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, транспорт, финансы ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, создания сцСнариСв ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ.

    Python & Django Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

    Π’Π°Ρˆ шанс быстрСС Π²Ρ‹ΠΉΡ‚ΠΈ Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ

    ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Python связана с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прСимущСствами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ простота ΠΈ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽΡ‚ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Dropbox, Instagram ΠΈ Spotify.Однако, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ использованиС Python для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ прСимущСств, Π΅ΡΡ‚ΡŒ ΠΈ нСсколько ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ. Π”Π°Π²Π°ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈΡ….

    Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

    Π•ΡΡ‚ΡŒ нСсколько Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ использованиС Python для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

    • Низкий Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Ρ€ΡŒΠ΅Ρ€
      Python ΠΏΠΎΡ…ΠΎΠΆ Π½Π° английский язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² повсСднСвной ΠΆΠΈΠ·Π½ΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° синтаксиса позволяСт Π²Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ со слоТными систСмами ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС элСмСнты ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ взаимосвязь Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.Благодаря этому большС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ язык ΠΈ быстрСС ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ сообщСству программистов.
    • Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ визуализация
      ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π»Π΅Π³ΠΊΠΎ понятном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΎ эффСктивный способ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния ΠΈ понимания Π΄Π°Π½Π½Ρ‹Ρ…. Компании, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Matplotlib), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ ΠΈ простыС для понимания ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹.

    Python нСвСроятно Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, поэтому Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°, написанного ΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ-программистами.Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивным. А Ρ€Π°Π±ΠΎΡ‚Π° становится Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅ благодаря ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ IDE для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Python.

    НаписаниС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° асинхронного ΠΊΠΎΠ΄Π° с использованиСм Python Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… усилий, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, разногласий Π² исслСдованиях ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΠ±ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… с Ρ‚ΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. КаТдая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° запускаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ позволяСт быстрСС ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ситуациями ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

    По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками программирования, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Java, Python ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.Он ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ мноТСство стилСй программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Python ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ языком для стартапов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚.

    Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ это Π΄Π°Π΅Ρ‚:

    • Быстрая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.
      Python — это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ языков программирования, Π½ΠΎ ΠΈ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Π΅Π΅.Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Python ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ языком для стартапов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π±ΠΎΠ»Π΅Π΅ быстроС врСмя Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ большСС ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ΅ прСимущСство.
    • ООП становится ΠΏΡ€ΠΎΡ‰Π΅.
      ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ извСстноС ΠΊΠ°ΠΊ ООП, — это ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ повСдСния ΠΈ свойства Π² нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ классов. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих классов Π΅ΡΡ‚ΡŒ функция, поэтому, Ссли Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ части ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’ Python Ρ€Π°Π±ΠΎΡ‚Π° ООП Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π°, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΠΉ.
    • Богатая стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ экосистСма.
      Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python содСрТат ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π·Π°Ρ€Π°Π½Π΅Π΅ написанного ΠΊΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° созданиС основных элСмСнтов. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программистам ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ (ML).

    Python — популярный Π²Ρ‹Π±ΠΎΡ€ для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ благодаря Π΅Π³ΠΎ ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Java, PHP ΠΈ.Π‘Π•Π’Π¬.

    Python Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Java, C ++ ΠΈΠ»ΠΈ C Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, обСспСчивая Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ процСссов ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

    ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для сборки Π½ΠΎΠ²Ρ‹Ρ… ΠΈ старых Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² инфраструктуры, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ для слоТных ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

    Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Π²Π΅Ρ‰ΡŒ Π² Python — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π²Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° самыС извСстныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Python.

    • Django
      Π­Ρ‚Π° структура ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² срСднСго уровня. Он ΠΈΠΌΠ΅Π΅Ρ‚ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, согласованно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Django Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Oracle SQL, PostgreSQL, MySQL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ извСстными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
    • Pyramid
      Π‘ этой структурой Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.Pyramid ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅.
    • TurboGears
      TurboGears состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Repoze, WebOb ΠΈ Genshi, ΠΈ основан Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ MVC. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ для быстрой ΠΈ эффСктивной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π² обслуТивании. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой структуры Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ нСбольшиС ΠΈΠ»ΠΈ слоТныС прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅ΠΆΠΈΠΌΡ‹ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΌ стСком соотвСтствСнно.
    • Flask
      Ѐилософия этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² прСдоставлСнии простого ΠΈ управляСмого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Flask опрСдСляСт сСбя ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈ Ρ‡Π°Ρ‰Π΅ всСго примСняСтся ΠΊ нСбольшим Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ, основным ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся бСрСТливая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ².

    БущСствуСт мноТСство ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, доступных для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ числовых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VTK 3D ΠΈ MayaVi), ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов.НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

    Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ машинного обучСния (ML) ΠΈ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° (AI) ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽΡ‚ всС большС внимания, поэтому всС большС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ язык.

    По словам Π–Π°Π½Π° Ѐрансуа ПьюТС, прСдставитСля ΠΎΡ‚Π΄Π΅Π»Π° машинного обучСния IBM, Python являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ языком для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² машинного обучСния ΠΈ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ согласны с этим. Python ΠΈΠΌΠ΅Π΅Ρ‚ эффСктивныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ машинного обучСния, инструмСнты для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приносят ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π² этой области прилоТСния.

    Благодаря тСсной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с C, C ++ ΠΈ Java, Python ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ для написания сцСнариСв ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для встраивания с самого Π½Π°Ρ‡Π°Π»Π°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для настройки Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ создания для Π½ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.

    Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования. МногиС спСциалисты ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ QA Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Python ΠΈΠ·-Π·Π° Π΅Π³ΠΎ простой ΠΊΡ€ΠΈΠ²ΠΎΠΉ обучСния — ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π΅Ρ…, Ρƒ ΠΊΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ тСхничСский ΠΎΠΏΡ‹Ρ‚ — сильноС сообщСство, Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ синтаксис ΠΈ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.Π£ Python Π΄Π°ΠΆΠ΅ Π΅ΡΡ‚ΡŒ простыС Π² использовании Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСстированиС Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² Π½Π° Python оказалось быстрым ΠΈ простым процСссом. Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ языка программирования позволяСт Π»Π΅Π³ΠΊΠΎ провСсти Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΈ быстро ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

    Python ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ лСгкодоступным для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ распространСниС ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ свободно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄ Π² Π΅Π³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅.

    Одним ΠΈΠ· прСимущСств использования Python для сСрвСрных сцСнариСв являСтся Π΅Π³ΠΎ простой синтаксис, ΠΊΠ°ΠΊ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт процСсс. Код состоит ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° основС дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ графичСскиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

    Python ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достойными возмоТностями для динамичСской сСмантики ΠΈ быстрого прототипирования, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря Π΅Π³ΠΎ интСрактивности ΠΈ пСрСносимости.Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄Π°ΠΆΠ΅ Π² Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ языки программирования. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ словарный запас Python. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΠΊΠ»Π΅Π΅Π²Ρ‹ΠΌ языком».

    НСсмотря Π½Π° прСимущСства Python, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ нСдостатки, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот язык Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

    Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹, бСзусловно, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ сдСлали самыС ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.Однако с Python всС Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ с этим языком Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов, особСнно Ссли ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Java.

    ΠœΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΡΡ‚ΡŒ — ваТная Ρ‡Π°ΡΡ‚ΡŒ написания прилоТСния. Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΡΡ‚ΡŒ, хотя ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈΠ»ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°.

    Python часто ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚ Π·Π° Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык сцСнариСв, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Π³ΠΎ скомпилированныС Π°Π½Π°Π»ΠΎΠ³ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C / C ++ ΠΈΠ»ΠΈ Java, ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄Π°.Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тСсты Python Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС, Ρ‡Π΅ΠΌ тСсты C ΠΈ C ++.

    ΠŸΡ€ΠΈ этом Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Python ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Ruby, Perl ΠΈ Π΄Π°ΠΆΠ΅ JavaScript Ρ‚Π°ΠΊΠΆΠ΅ находятся Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ ΡˆΠΊΠ°Π»Ρ‹.

    НСкоторыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Π±Ρ‹Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, поэтому Python остаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² для ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

    Π­Ρ‚ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ язык для мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ нСсколько ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ для этой Ρ†Π΅Π»ΠΈ, прСдпочитая Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ для iOS ΠΈ Android ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° React Native.По Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²Π°ΠΌ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ слоТно Π½Π°Π½ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ‚Π°ΠΊ популярСн, ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² этой сфСрС.

    НуТны собствСнныС ΠΈΠ»ΠΈ кроссплатформСнныС ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния

    ?

    НаймитС Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ тСхничСского ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°.

    Python — это язык, извСстный Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ своих Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ довольно высокому ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ памяти ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Π΅Π³ΠΎ использованиС для Π·Π°Π΄Π°Ρ‡, интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΌΡΡ‚ΡŒ.

    Python ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²ΠΎ врСмя выполнСния прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π±Ρ‹ Π½Π° языкС со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½. Если ваш Π΄ΠΈΠ·Π°ΠΉΠ½ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ элСмСнтами, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π΅Π΅ бСспСрСбойной Ρ€Π°Π±ΠΎΡ‚Π΅.

    Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, рассматривая Python для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для элСгантного использования Π² Python. Из-Π·Π° этого Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ изысканно, ΠΊΠ°ΠΊ Π²Π°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹.

    Python позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ понятныС ΠΈ простыС прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ· нСбольшого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ слоТноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистом, ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ своСго бизнСса, Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

    Он ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… языков программирования для стартапов, ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎΡ‡Π΅ΠΌΡƒ, Ссли ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ прСимущСства Python ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стартапы. Π‘Ρ‚Π°Ρ€Ρ‚Π°ΠΏΡ‹ постоянно ΠΈΡ‰ΡƒΡ‚ увСрСнности ΠΈ сниТСния рисков, Ρƒ Π½ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы ΠΈ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ пространство для роста.Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Python Π³ΠΈΠ±ΠΎΠΊ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈ MVP.

    Django Stars, компания, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π°ΡΡΡ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот язык ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚. ΠœΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ слоТныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΈΠΌΠ΅Π΅ΠΌ ряд ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π² Ρ‚Π°ΠΊΠΈΡ… сфСрах, ΠΊΠ°ΠΊ элСктронная коммСрция, Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ финансы. К Π½ΠΈΠΌ относятся:

    • PADI Travel — ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° элСктронной ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ ΠΈ бронирования ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π΄Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ со всСго ΠΌΠΈΡ€Π°.

    Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° бронирования для Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ с
    ΡˆΠΈΡ€ΠΎΡ‡Π°ΠΉΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π»Π°ΠΉΠ²Π±ΠΎΡ€Π΄ΠΎΠ², Π΄Π°ΠΉΠ²-ΠΊΡƒΡ€ΠΎΡ€Ρ‚ΠΎΠ² ΠΈ
    Π΄Π°ΠΉΠ²-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ.

    • Sindeo — ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎ нСдвиТимости, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΎΡ€Π°Ρ… ΠΈ ΠΈΠΏΠΎΡ‚Π΅ΠΊΠ΅.
    • MoneyPark — ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠ°Ρ компания, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ финансовыС ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ вопросам страхования ΠΈ ΠΈΠΏΠΎΡ‚Π΅ΠΊΠΈ.

    ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ нСзависимый поставщик
    ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… финансовых ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΠΈΠΏΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΌ ΠΈ страховым ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ
    Π² Π¨Π²Π΅ΠΉΡ†Π°Ρ€ΠΈΠΈ.

    Π˜Ρ‚Π°ΠΊ, Π² ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹ сфСрС Π²Ρ‹ Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, Python стоит вашСго внимания. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, экономит врСмя ΠΈ обСспСчиваСт высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности.

    Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΡ… извСстных ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. НСкоторыС ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ наибольшим Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ΠΌ ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ€ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Python Π² качСствС основного языка программирования вмСстС с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Django.