FLASK STREŽNIK
Flask je priljubljen Pythonov spletni okvir (framework), ki omogoča hitro ustvarjanje spletnih aplikacij. Povezava med Pythonom in HTML deluje tako, da Flask usmeri podatke med spletno stranjo (HTML) in strežnikom (Python).
1. Namestitev Flask
Najprej namesti Flask, če še ni nameščen:
pip install flask
2. Osnovni koncept povezave Python in HTML
Flask omogoča:
- Ustvarjanje strežnika za obdelavo zahtev.
- Povezovanje s HTML stranjo za prikaz rezultatov.
- Pošiljanje podatkov med Pythonom in HTML preko obrazcev (forms) ali dinamičnih vsebin.
3. Ustvarjanje preproste Flask aplikacije
Ustvarimo si takole strukturo direktroijev in datotek:
- Struktura mape:
projektna_mapa/ ├── app.py └── templates/ └── index.html
Korak 1: Python koda (Flask strežnik)
"""
Ta koda:
1. Zažene strežnik, ki sprejme zahteve uporabnika.
2. Pošlje HTML stran za prikaz v brskalniku.
3. Obdeluje podatke, ki jih uporabnik vnese na spletni strani.
"""
from flask import Flask, request, render_template
app = Flask(__name__) # Ustvari aplikacijo
@app.route("/", methods=["GET", "POST"]) # Pot na URL-ju "/"
def index():
"""
Glavna funkcija:
- Če uporabnik obišče stran (GET), pokaže HTML obrazec.
- Če uporabnik pošlje podatke (POST), jih obdelamo in vrnemo odgovor.
"""
odgovor = "" # Spremenljivka za odgovor
if request.method == "POST": # Če uporabnik pošlje obrazec
uporabnikov_vnos = request.form["user_input"] # Prebere vnos iz obrazca
odgovor = f"Prejeli smo vaše vprašanje: {uporabnikov_vnos}" # Pripravi odgovor
return render_template("index.html", odgovor=odgovor) # Pošlje HTML stran z odgovorom
if __name__ == "__main__":
app.run(debug=True) # Zaženi strežnik v načinu za razvoj
Korak 2: HTML koda (index.html)
<!DOCTYPE html>
<html>
<head>
<title>Flask Uvod</title>
</head>
<body>
<h1>Dobrodošli na Flask strani!</h1>
<form method="post"> <!-- Obrazec za pošiljanje podatkov -->
<label for="user_input">Vnesite vprašanje:</label><br>
<input type="text" id="user_input" name="user_input" required><br><br>
<input type="submit" value="Pošlji">
</form>
</body>
</html>
Kaj se zgodi:
- Uporabnik obišče URL
http://127.0.0.1:5000/
. - Flask strežnik prikaže HTML stran (GET zahteva).
- Ko uporabnik v obrazec vnese podatke in klikne “Pošlji”:
- Flask prejme podatke (POST zahteva).
- Python obdela podatke in pošlje rezultat nazaj v HTML.
4. Kako dodamo dinamičnost z GPT-4
Spremenjena Python koda z GPT-4:
import openai
from flask import Flask, request, render_template
# Nastavi API ključ
openai.api_key = "your-api-key"
app = Flask(__name__)
def gpt_response(user_input):
"""
Funkcija za komunikacijo z GPT-4 API.
Sprejme uporabnikov vnos in vrne odgovor GPT.
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "Ti si pomočnik za tehniko in tehnologijo."},
{"role": "user", "content": user_input}
]
)
return response['choices'][0]['message']['content']
@app.route("/", methods=["GET", "POST"])
def index():
"""
Prikaže HTML stran in obdeluje uporabnikove vnose.
"""
odgovor = ""
if request.method == "POST":
uporabnikov_vnos = request.form["user_input"]
odgovor = gpt_response(uporabnikov_vnos) # Pokliče GPT-4 za odgovor
return render_template("index.html", odgovor=odgovor)
if __name__ == "__main__":
app.run(debug=True)
HTML koda ostane enaka:
HTML del obrazca in prikaz odgovora ne potrebujeta sprememb.
5. Kako poženemo Flask aplikacijo
- Shrani Python kodo v datoteko, npr.
app.py
. - Shrani HTML kodo v mapo
templates
znotraj iste mape kotapp.py
.- Struktura mape:
projektna_mapa/ ├── app.py └── templates/ └── index.html
- Struktura mape:
- Zaženi aplikacijo:
python app.py
- Odpri brskalnik in obišči
http://127.0.0.1:5000/
.
6. Ključni pojmi Flask
@app.route
: Dekorator za določanje poti URL (npr./
za domačo stran).request
: Uporablja se za pridobivanje podatkov iz obrazca (GET ali POST zahteva).render_template
: Prikaže HTML datoteko.debug=True
: Uporablja se za razvoj, omogoča sprotno posodabljanje aplikacije.
Naloge za študente
- Prilagodite HTML stran, da omogoča izbiro tem (npr. “Elektronika” ali “Mehanika”).
- Spremenite Python kodo tako, da se GPT-4 odziva glede na izbrano temo.
- Preizkusite aplikacijo z različnimi vprašanji in prilagodite začetni
system
opis.
Če želiš, lahko pripravim bolj podrobne naloge ali dodatne razširitve!