Sovelluksen asetukset - TiViOpetus/Autolainaus GitHub Wiki
Sovellusasetukset
Ohjelman asetuksia ei tallenneta ohjelmakoodiin, vaan ne löytyvät erillisestä asetustiedostosta settings.json
. Ohjelmaan luodaan oma lomake (sivu), jonka kautta asetukset syötetään. Ne muutetaan ohjelmallisesti Python-sanakirjaksi:
asetuksetDict = {
'server': 'autolaina.raseko.fi',
'port': 5432,
'database': 'autolainaus',
'userName': "postgres",
'password': "Q2werty"
}
Koodikatkelmassa on joitakin tietokantaan liittyviä asetuksia Python-sanakirjana. Kun tiedot tallennetaan levylle, JSON on kätevä esitystapa. Sanakirja voidaan muuntaa JSON-objektiksi json
-kirjaston avulla komennolla asetuksetJson = json.dumps(asetuksetDict)
.
:bulb: Pythonin JSON-kirjastosta löytyy myös
load()
- jadump()
-metodit. Niille annetaan parameriksi käsiteltävän tiedoston nimi.
Levylle kirjoittamisessa kannattaa hyödyntää with
-rakennetta. Se huolehtii tiedoston sulkemisesta ja muistin vapauttamisesta tallennusoperaation jälkeen:
# Kirjoitetaan asetukset tiedostoon ja luodaan se tarvittaessa
with open('asetukset.json','wt') as settingsFile:
settingsFile.write(asetuksetJson)
print("Asetukset tallennettu")
...
# Luetaan asetukset tiedostosta Python-sanakirjaan
asetuksetDict = {}
with open('asetukset.json','rt') as settingsFile:
rawSettings = settingsFile.read()
asetuksetDict = json.loads(rawSettings)
Komennolla json.loads()
muunnetaan JSON-pohainen data takaisin Python-sanakirjaksi.
Tiedostomoodit
Kun tiedosto avataan, käyttöjärjestelmälle on kerrottava avataanko se lukutilaan vai kirjoitustilaan. Jos se avataan kirjoitustilaan, käyttöjärjestelmä lukitsee tiedoston muilta käyttäjiltä tai ohjelmilta. Kirjoitustilassa lukitusta ei tehdä, mutta myös lukuoperaation päätyttyä tiedosta kannattaa sulkea. Edellisissä esimerkeissä käytettiin with
-rakennetta tiedoston automaattiseen sulkemiseen käsittelyn jälkeen. Avaaminen ja sulkeminen voidaan myös tehdä ilman rakennetta:
# Avataan tiedost settings.txt kirjoitusta varten
settingFile2 = open('settings.txt', 'wt')
uudetAsetukset = 'Asetukset\nPalvelin: 10.66.0.3\n'
settingFile2.write("Tyhjät asetukset:") # Kirjoitetaan uudet tiedot
settingFile2.close() # Suljettava kirjoituksen jälkeen
Koodikatkelmassa settings.txt
-tiedosto avataan kirjoitustilaan (w). Tiedosto on tekstitiedosto (t). write()
-metodilla suoritetaan tiedostoon kirjoittaminen ja jotta tiedostoa voitaisiin käsitellä uudelleen, esim. lukea, tiedosto suljetaan close()
-metodilla. Avaus komennossa annettavat tilat ja tiedostomuotojen lyhenteet ilmenevät seuraavasta taulukosta:
Kirjain | Merkitys |
---|---|
r |
lukutila (read) |
w |
kirjoitustila (write) |
a |
lisäystila (append) |
+ |
avaamisen jälkeen tehää useampia operaatioita, esim. w+ ensin kirjoitetaan, sitten luetaan |
t |
tiedoston sisältö on tekstiä, oletus voi jättää tarvittaessa pois |
b |
tiedosto sisältää binääridataa, kuvat, äänet tms. |