πŸ’» Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python Π² HTML? 🐍

Для встраивания ΠΊΠΎΠ΄Π° Π½Π° языкС Python Π² HTML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Π³ - <script>. БлСдуя ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π½ΠΈΠΆΠ΅, Π²Ρ‹ смоТСтС Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ Python Π² Ρ„Π°ΠΉΠ» HTML:

<script type="text/python">
    # Π’Π°Ρˆ ΠΊΠΎΠ΄ Python здСсь
    print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!")
</script>

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ скрипта "text/python". ПослС этого ваш ΠΊΠΎΠ΄ Python Π±ΡƒΠ΄Π΅Ρ‚ исполнСн Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

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

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Π² HTML

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² эту ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄ Π² HTML! Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ создании динамичСских ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π΅Π±-страниц. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

1. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML с использованиСм CGI

Один ΠΈΠ· способов Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML - это использованиС CGI (Common Gateway Interface). CGI позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ скрипты Π½Π° сСрвСрС ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° Π²Π΅Π±-страницу. Для этого Π²Π°ΠΌ понадобится Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CGI ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ скрипт.


import cgi

print("Content-Type: text/html")
print()
print("

Hello, World!

")

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ этот скрипт с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, script.py), ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° сСрвСр с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CGI. Π—Π°Ρ‚Π΅ΠΌ Π² HTML-Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΈΡ‚ΠΎΠ½ скрипта:


<html>
<body>
  <h1>ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π­Ρ‚ΠΎ моя пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅</h1>
  <!--#include virtual="/cgi-bin/script.py" -->
</body>
</html>
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° строчку ΠΊΠΎΠ΄Π° <!--#include virtual="/cgi-bin/script.py" -->. Она ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° располоТСниС ΠΏΠΈΡ‚ΠΎΠ½ скрипта Π½Π° сСрвСрС. Когда этот HTML-Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½, сСрвСр запустит ΠΏΠΈΡ‚ΠΎΠ½ скрипт ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² HTML-страницу.

2. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML с использованиСм ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML - это использованиС ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ². Π¨Π°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ динамичСскиС HTML-страницы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π°. НСкоторыС популярныС ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Jinja2, Django Templates ΠΈ Mako.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Jinja2:


from jinja2 import Template

template = Template("<h1>Hello, {{ name }}!</h1>")
print(template.render(name="John"))
  

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ создаСт шаблон с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "name" ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ Π΅Π³ΠΎ, пСрСдавая Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "John". Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ HTML-страница с привСтствиСм "Hello, John!".

Π’ HTML-Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


<html>
<body>
  <h1>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {{ name }}! Π­Ρ‚ΠΎ моя пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅</h1>
</body>
</html>
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° "{{ name }}". Π¨Π°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "name", ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅.

3. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML с использованиСм JavaScript

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

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования JavaScript с AJAX:


var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("result").innerHTML = this.responseText;
  }
};
xhttp.open("GET", "/path/to/python_script.py", true);
xhttp.send();
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ JavaScript отправляСт GET-запрос Π½Π° ΠΏΠΈΡ‚ΠΎΠ½ скрипт с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ скрипта Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π² элСмСнтС с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ "result".

Π’ HTML-Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


<html>
<body>
  <h1>ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π­Ρ‚ΠΎ моя пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅</h1>
  <div id="result"></div>
  <script src="script.js"></script>
</body>
</html>
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π³ <script src="script.js"></script>. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ваш JavaScript-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт AJAX-запрос. Π€Π°ΠΉΠ» "script.js" Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ прСдставлСнный Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ JavaScript.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способа Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊΠΎΠ΄Π° Π² HTML. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CGI для запуска ΠΏΠΈΡ‚ΠΎΠ½ скриптов Π½Π° сСрвСрС, ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ для создания динамичСских HTML-страниц ΠΈΠ»ΠΈ JavaScript для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΈΡ‚ΠΎΠ½ скриптов с использованиСм AJAX. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих способов ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях.

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

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

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ скрипт Python ΠΊ html

Π£Ρ€ΠΎΠΊΠΈ Python / Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сайт

Онлайн Ρ‡Π°Ρ‚ Π½Π° Python Π² 100 строк ΠΊΠΎΠ΄Π°!

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

πŸ”ΠšΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ символа Π² строкС python?πŸ”’

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΡ‚ Π² Telegram ΠΎΡ‚Π²Π΅Ρ‡Π°Π» Π½Π° сообщСния Π½Π° Python?

πŸ”§ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ Ρƒ exe Ρ„Π°ΠΉΠ»Π° Python: пошаговоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ’» Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python Π² HTML? 🐍

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ split Π² Python? πŸ“˜ Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Π±Π°Π³ ΠΏΠΈΡ‚ΠΎΠ½: основы, инструмСнты ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты

🎨 Как вывСсти рисунок Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС способы!