π ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Python ΠΊ HTML ΠΈ CSS | Π¨Π°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
pip install flask
2. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Python Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "app.py" ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
3. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» HTML Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "index.html" ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
<!DOCTYPE html>
<html>
<head>
<title>ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Python ΠΊ HTML ΠΈ CSS</title>
</head>
<body>
<h1>ΠΡΠΈΠ²Π΅Ρ ΠΈΠ· Python!</h1>
</body>
</html>
4. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
python app.py
5. ΠΡΠΊΡΠΎΠΉΡΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ "http://localhost:5000". ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "ΠΡΠΈΠ²Π΅Ρ ΠΈΠ· Python!".
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Python ΠΊ HTML ΠΈ CSS!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Python ΠΊ HTML ΠΈ CSS
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Python ΠΊ HTML ΠΈ CSS ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
1. CGI-ΡΠΊΡΠΈΠΏΡΡ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Python ΠΊ HTML ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CGI-ΡΠΊΡΠΈΠΏΡΠΎΠ². CGI (Common Gateway Interface) - ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π‘Π»Π΅Π΄ΡΡ ΡΡΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ HTML.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ CGI-ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ "Hello, World!" Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅:
#! /usr/bin/python
print("Content-type: text/html")
print()
print("")
print("")
print("CGI Example ")
print("")
print("")
print("Hello, World!
")
print("")
print("")
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .py ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ CGI. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠΊΡΠΈΠΏΡΡ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ, ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ HTML-ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Python ΠΊ HTML ΠΈ CSS ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Flask ΠΈΠ»ΠΈ Django. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Flask Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ "Hello, World!" Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
Π‘ΠΊΡΠΈΠΏΡ Π²ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Flask ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅ΠΊΡΡ "Hello, World!" Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠΎΠ²
Π¨Π°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Jinja2, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ HTML-ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ Π² Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Jinja2:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello():
name = 'John Doe'
return render_template('index.html', name=name)
if __name__ == '__main__':
app.run()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ "name" Π² ΡΠ°Π±Π»ΠΎΠ½ "index.html". ΠΠ°ΡΠ΅ΠΌ Π²Π½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
Π¨Π°Π±Π»ΠΎΠ½ "index.html" ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
<!DOCTYPE html>
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
Π ΡΡΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΡΠ°Π²Π»Π΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
4. CSS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈΠ»ΠΈ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CSS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Bootstrap ΠΈΠ»ΠΈ Bulma. ΠΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΡΠΈΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π²Π°ΡΠΈΠΌ Python-ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Bootstrap Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
<!DOCTYPE html>
<html>
<head>
<title>Button Example</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
<button class="btn btn-primary">Click Me</button>
</body>
</html>
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ CSS-ΡΠ°ΠΉΠ» Bootstrap, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ "btn btn-primary" Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Python ΠΊ HTML ΠΈ CSS. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CGI-ΡΠΊΡΠΈΠΏΡΡ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ CSS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ!