larajagodnik / Avtohisa

Projekt pri OPB
MIT License
1 stars 0 forks source link

Piškotki #5

Closed JanSifrer closed 4 years ago

JanSifrer commented 4 years ago

Pozdravljeni, Zanima me, zakaj računalnik noče shraniti vrednosti username v piškotek? Oziroma, če pa jo shrani, je pa nezna/noče prebrati?

Proti koncu datoteke aplikacija.py sem uporabil to v @post('/prijava'), 115 vrstica kode.

Hkrati pa me zanima še, zakaj se računalnik pritožuje pri uporabi request.forms..., pač pravi da metoda forms nima nobene get oz. id, barva, itd. metode?

jaanos commented 4 years ago

Očitno je problem v novejši različici knjižnice hmac. Da bo delovalo pravilno, uporabite novejšo različico bottle.py.

Nova različica vas bo opozorila, da uporaba spremenljivk z dvopičji v prihodnje ne bo več podprta (čeprav zaenkrat še deluje). Namesto tega raje uporabite način, pri katerem lahko določite še tip spremenljivke, npr.

@get('/avto/<x:str>') # glede na to, da dovolite samo določene nize, bo morda bolje za vsakega določiti svojo funkcijo

@get('/manjse/<x:int>/')

Kar se tiče pridobivanja podatkov iz obrazca, svetujem, da namesto request.forms.get('username') uporabite request.forms.username, saj bodo tako pravilno delovali šumniki. V VS Code vam tak način sicer podčrta, saj to polje ni eksplicitno definirano v bottle.py in linter tako ne more vedeti, da bo v času izvajanja dejansko obstajalo.

JanSifrer commented 4 years ago

Piškotki sedaj delajo, hvala!!! Vendar pa @get('/avto/<x:str>') ne deluje, mi javlja napako, KeyError: 'str'. Sem pa našel možnost za podajanje tipov s regularnimi izrazi @get('/avto/<x:re:[a-z]+>'), ali je to isto v redu?

jaanos commented 4 years ago

Aha, očitno za nize ni potrebno posebej podati tipa - mislim, da bi moralo delovati kar <x>. Lahko pa seveda še bolj omejite z regularnimi izrazi, če vam to seveda pride prav.

JanSifrer commented 4 years ago

Aha okey, hvala!