🌐 Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° сайт Flask ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ πŸ—ΊοΈ

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° сайтС flask

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° свой Π²Π΅Π±-сайт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Flask, Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ картографичСский API, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Google Maps, ЯндСкс.ΠšΠ°Ρ€Ρ‚Ρ‹ ΠΈΠ»ΠΈ OpenStreetMap.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Google Maps API Π² Flask:


from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

Π¨Π°Π³ΠΈ:

  1. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ картографичСском API ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ свой API ΠΊΠ»ΡŽΡ‡.
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ шаблон HTML для отобраТСния ΠΊΠ°Ρ€Ρ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ index.html.
  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π² Flask, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы для отобраТСния ΠΊΠ°Ρ€Ρ‚Ρ‹.
  4. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставлСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ запрос ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ API ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ настройки отобраТСния, Π² шаблон.
  5. ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚Ρƒ Π½Π° вашСм Π²Π΅Π±-сайтС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ JavaScript ΠΈ API ΠΊΠ»ΡŽΡ‡.

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ JavaScript для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ Π² вашСм шаблонС HTML. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ инструкции ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ API Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° сайтС вашСго Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ картографичСского сСрвиса.

Π£Π΄Π°Ρ‡ΠΈ Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°Ρ€Ρ‚ Π½Π° ваш Π²Π΅Π±-сайт!

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° сайтС Flask

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

Π¨Π°Π³ 1: Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Flask

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Flask. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:


pip install flask

Установка Flask ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, поэтому Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹. ПослС установки ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию ΠΊΠ°Ρ€Ρ‚Ρ‹.

Π¨Π°Π³ 2: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ API-ΠΊΠ»ΡŽΡ‡Π°

Для создания ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° вашСм Π²Π΅Π±-сайтС Π²Π°ΠΌ понадобится API-ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ поставщика ΠΊΠ°Ρ€Ρ‚. ΠŸΠΎΡ‡Ρ‚ΠΈ всС поставщики ΠΊΠ°Ρ€Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ бСсплатныС API-ΠΊΠ»ΡŽΡ‡ΠΈ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠΏΠ»Π°Ρ‚Ρƒ Π·Π° использованиС Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НайдитС подходящСго поставщика ΠΊΠ°Ρ€Ρ‚ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ свой API-ΠΊΠ»ΡŽΡ‡.

Π¨Π°Π³ 3: Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ созданиС прилоТСния Flask

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


from flask import Flask, render_template

app = Flask(__name__)

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ класс Flask ΠΈΠ· модуля flask ΠΈ создаСм экзСмпляр прилоТСния. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ render_template, которая позволяСт Π½Π°ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ HTML-ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

Π¨Π°Π³ 4: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° для отобраТСния ΠΊΠ°Ρ€Ρ‚Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ для отобраТСния ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° нашСм Π²Π΅Π±-сайтС. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ "/" ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:


@app.route('/')
def map():
    api_key = "YOUR_API_KEY"
    return render_template('map.html', api_key=api_key)

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ "/" ΠΈ связываСм Π΅Π³ΠΎ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ map(). Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ опрСдСляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ api_key ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² HTML-шаблон map.html с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ render_template.

Шаг 5: БозданиС HTML-шаблона

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим HTML-шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ Π½Π° Π²Π΅Π±-сайтС. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» map.html ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


<!DOCTYPE html>
<html>
<head>
    <title>Map</title>
    <script src="https://maps.googleapis.com/maps/api/js?key={{ api_key }}&callback=initMap" async defer></script>
    <script>
        function initMap() {
            // Код ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ€Ρ‚Ρ‹
        }
    </script>
</head>
<body>
    <div id="map"></div>
</body>
</html>

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ скрипт Google Maps API с использованиСм API-ΠΊΠ»ΡŽΡ‡Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· Python-ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ api_key. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ initMap(), которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ Π½Π° Π²Π΅Π±-сайтС.

Π¨Π°Π³ 6: Запуск прилоТСния Flask

НаконСц, Π΄Π°Π²Π°ΠΉΡ‚Π΅ запустим нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π°:


if __name__ == '__main__':
    app.run()

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ запускаСт нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask Π½Π° локальном сСрвСрС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу http://localhost:5000, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ Π½Π° вашСм Π²Π΅Π±-сайтС.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° сайтС Flask. ΠœΡ‹ установили ΠΏΠ°ΠΊΠ΅Ρ‚ Flask, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ API-ΠΊΠ»ΡŽΡ‡ для ΠΊΠ°Ρ€Ρ‚, создали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ для отобраТСния ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ создали HTML-шаблон для отобраТСния ΠΊΠ°Ρ€Ρ‚Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти знания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° своСм Π²Π΅Π±-сайтС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Flask.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Flask: Π΄Π΅Π»Π°Π΅ΠΌ простоС Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python (простой сайт)

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ Π½Π° сайт? SVG + HTML + CSS + jQuery

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Flask / #2 - Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° страниц ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ стилСй

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

🌐 Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° сайт Flask ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ πŸ—ΊοΈ