PythonPodcast 50 - itnett/FTD02H-N GitHub Wiki
I denne delen av Python-opplæringen skal vi utforske avanserte konsepter som datastrukturer, API-integrasjon, avansert filbehandling, og vi vil også introdusere bruk av GUI (Grafisk Brukergrensesnitt). Vi skal også se nærmere på hvordan Python kan integreres med eksterne applikasjoner og verktøy.
-
json
(Jobbe med JSON-data)
➡️ Norsk: JSON er et vanlig format for å lagre og overføre data mellom systemer. Python har innebygd støtte for å jobbe med JSON-data.
➡️ Engelsk: JSON is a common format for storing and transferring data between systems. Python has built-in support for working with JSON data.
import json
# Konvertere Python-objekt til JSON
data = {"navn": "Anna", "alder": 30}
json_str = json.dumps(data)
print(json_str) # Output: {"navn": "Anna", "alder": 30}
# Konvertere JSON-streng til Python-objekt
data = json.loads(json_str)
print(data["navn"]) # Output: Anna
-
API-integrasjon
➡️ Norsk: API-er tillater ulike applikasjoner å kommunisere med hverandre ved å sende og motta data over internett.
➡️ Engelsk: APIs allow different applications to communicate by sending and receiving data over the internet.
import requests
# Eksempel på API-forespørsel til et vær-API
url = "https://api.weatherapi.com/v1/current.json?key=ditt_api_key&q=Oslo"
respons = requests.get(url)
data = respons.json()
print(f"Været i Oslo: {data['current']['temp_c']}°C")
-
csv
(Jobbe med CSV-filer)
➡️ Norsk: CSV-filer er tekstfiler der data er separert med komma. Python kan enkelt lese og skrive CSV-filer ved hjelp avcsv
-modulen.
➡️ Engelsk: CSV files are text files where data is separated by commas. Python can easily read and write CSV files using thecsv
module.
import csv
# Lese fra en CSV-fil
with open('data.csv', 'r') as fil:
leser = csv.reader(fil)
for rad in leser:
print(rad)
# Skrive til en CSV-fil
with open('output.csv', 'w', newline='') as fil:
skribent = csv.writer(fil)
skribent.writerow(['Navn', 'Alder'])
skribent.writerow(['Anna', 30])
-
shutil
(Filkopiering og flytting)
➡️ Norsk:shutil
gir muligheten til å kopiere, flytte og håndtere filer og mapper.
➡️ Engelsk:shutil
provides the ability to copy, move, and manage files and directories.
import shutil
# Kopiere en fil
shutil.copy("original.txt", "kopi.txt")
# Flytte en fil
shutil.move("kopi.txt", "ny_mappe/kopi.txt")
-
tkinter
(Lage et GUI)
➡️ Norsk:tkinter
er Pythons standardbibliotek for å lage grafiske brukergrensesnitt (GUI).
➡️ Engelsk:tkinter
is Python's standard library for creating graphical user interfaces (GUI).
import tkinter as tk
# Opprett et enkelt vindu
vindu = tk.Tk()
vindu.title("Mitt første GUI")
# Legg til en etikett
etikett = tk.Label(vindu, text="Hei, verden!")
etikett.pack()
# Start GUI
vindu.mainloop()
-
Event-drevet programmering
➡️ Norsk: GUI-programmer baseres ofte på hendelser. Brukerhandlinger som å trykke på knapper eller skrive inn tekst er hendelser som trigges av programmet.
➡️ Engelsk: GUI programs are often event-driven. User actions like pressing buttons or entering text trigger events handled by the program.
def trykk_knapp():
print("Knappen ble trykket!")
knapp = tk.Button(vindu, text="Trykk meg!", command=trykk_knapp)
knapp.pack()
-
API Autentisering
➡️ Norsk: Mange API-er krever autentisering med API-nøkler eller OAuth for å sikre data og bruk.
➡️ Engelsk: Many APIs require authentication using API keys or OAuth to secure data and usage.
api_key = "ditt_api_nøkkel"
url = f"https://api.example.com/data?apikey={api_key}"
-
OAuth for API-tilgang
➡️ Norsk: OAuth er en standard for å autorisere tilgang til API-er uten å utlevere passord.
➡️ Engelsk: OAuth is a standard for authorizing access to APIs without exposing passwords.
# Bruk av OAuth via requests_oauthlib
from requests_oauthlib import OAuth1Session
oauth = OAuth1Session(
client_key="din_client_key",
client_secret="din_client_secret",
resource_owner_key="din_resource_key",
resource_owner_secret="din_resource_secret"
)
response = oauth.get("https://api.example.com/protected-resource")
-
Unngå SQL Injection
➡️ Norsk: SQL Injection er en alvorlig sårbarhet hvor en angriper kan kjøre skadelig SQL-kode. Bruk alltid parameteriserte spørringer for å unngå dette.
➡️ Engelsk: SQL Injection is a serious vulnerability where an attacker can execute malicious SQL code. Always use parameterized queries to prevent this.
import sqlite3
# Bruk parameteriserte spørringer for å unngå SQL Injection
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
navn = "Anna"
cursor.execute("SELECT * FROM brukere WHERE navn = ?", (navn,))
-
XSS (Cross-Site Scripting)
➡️ Norsk: XSS er en sårbarhet som tillater angripere å kjøre ondsinnet JavaScript på en nettside. Unngå dette ved å escape brukerinput.
➡️ Engelsk: XSS is a vulnerability that allows attackers to execute malicious JavaScript on a website. Prevent this by escaping user input.
# Unngå XSS ved å escape HTML-koder
fra html import escape
user_input = "<script>alert('XSS')</script>"
safe_input = escape(user_input)
🎯 Oppsummering Del 5:
I denne delen har vi lært om avansert filbehandling, API-integrasjon, og hvordan du kan lage et grafisk brukergrensesnitt med tkinter
. Vi har også sett på hvordan vi kan jobbe sikkert med API-er og beskytte applikasjoner mot vanlige sikkerhetstrusler som SQL Injection og XSS.
Neste del vil fokusere på mer avanserte Python-emner som datastrukturer, avansert feilhåndtering, og jobbe med større prosjekter!🚀