๐Ÿ‘ฆ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„/TIL(Today I Learned)

TIL_220509_ํŒ€ ํ”„๋กœ์ ํŠธ ์˜ค๋ฅ˜ ๋…ธํŠธ

  • -

ํ˜„์ €ํžˆ ์ง„ํ–‰๋ฅ ์ด ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋–จ์–ด์ง€๋Š” ์ง€๊ธˆ..

 

์Šค์ณ ์ง€๋‚˜๊ฐ„๋‹ค ํ•˜๋”๋ผ๋„

 

๋‚จ๊ธฐ๊ณ , ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์„ ๊พธ์ค€ํžˆ ํ•ด์•ผํ•˜๋Š”

 

ํ•˜๋‚˜ ํ•ด๊ฒฐํ•˜๋ฉด ์…‹์ด์„œ ๋‹ฌ๋ ค๋“œ๋Š”..

 

์˜ค๋ฅ˜.. ๋„ˆ๋ž€ ์• ๋Š” ์ฐธ..

 


 

1)

 

ํŒ€ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘

์ผ๋ถ€ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ค‘์— ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜

 

token = jwt.encode(payload, SECRET_KEY, algorithm='HS256').decode('utf-8')

 

์›์ธ : python3์—์„œ๋Š” ๊ธฐ๋ณธ์ด utf-8์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด decode๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ํ•œ๋‹ค.

ํ•ด๊ฒฐ : 'decode' ๋ถ€๋ถ„์„ ์ง€์›Œ์ค€๋‹ค.

 

 

2)

 

๊ฒŒ์‹œ๊ธ€ ์‚ฌ์ง„ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ค‘

 

ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์˜ ๊ณ ์œ  ์‚ฌ์ง„์˜ ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ

 

๋‚ ์งœ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋˜ ์ค‘

 

# ์ƒˆ๋กœ์šด ๋‚ ์งœ ์ด๋ฆ„ ๋งŒ๋“ค๊ธฐ
today = datetime.now()

 

module 'datetime' has no attribute 'now'

 

๋Œ€์ถฉ ๋ญ๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ•ด์ฃผ๊ณ  ์žˆ๋‹ค.

 

์›์ธ : from ์—์„œ ๋ฐ›๋Š” datetime ์€ datetime ๋ชจ๋“ˆ ์ด๊ณ 

import ์—์„œ ๋ฐ›๋Š” datetime ์€ ๋™๋ช…์˜ ๋ชจ๋“ˆ์˜ ํ•˜์œ„ ํด๋ž˜์Šค ์ด๋‹ค.

 

ํ•ด๊ฒฐ : import ๋งŒ ๋˜์–ด์žˆ๋˜ datetime ์„

from datetime import datetime ์œผ๋กœ ๋ฐ”๊พธ์–ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

3)

 

์ง„ํ–‰ ์ค‘์ธ ์˜ค๋ฅ˜

 

jinja2.exceptions.UndefinedError: 'profile_placeholder' is undefined

 

๋ผ๋Š” ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ render_template ๋กœ ๊ฑธ์—ˆ๋˜ html ์ด ์ •์ƒ์ ์œผ๋กœ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค..

 

์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ๋Œ€๋ถ€๋ถ„ html ์˜ favicon ์œผ๋กœ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋‚˜ํƒ€๋‚˜๋Š” ์˜ค๋ฅ˜๋ผ๊ณ  ํ•˜๋ฉฐ,

 

๋‹ค๋ฅธ ๊ฒฝ์šฐ๋Š” render_template ์˜ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์˜ ์˜ค๋ฅ˜๋ผ๊ณ ๋„ ํ•œ๋‹ค.

 

๋””๋ฒ„๊น…์„ ํ†ตํ•ด ์ฐพ์•„๋ณด๋Š” ์ค‘์ด์ง€๋งŒ ์•„์ง๊นŒ์ง€ ์ •ํ™•ํ•œ ์›์ธ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค..

 

ํ—ฌ๋ฏธ.. ํŠœํ„ฐ๋‹˜... ใ… 

 

 

4)

 

์ง„ํ–‰ ์ค‘์ธ ๊ณ ๋ฏผ..

 

์ฒซ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์—ญํ• ๋กœ ๊ฒŒ์‹œ๊ธ€์˜ ์‚ฌ์ง„ ๋ฐ ๊ธ€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด์˜€๋‹ค.

 

์›น๊ฐœ๋ฐœ ์ข…ํ•ฉ ๊ฐ•์˜ ๋‚ด์šฉ๊ณผ ํ•จ๊ป˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„์— ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๊ฐ„๊ณผํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด,

 

๊ณ ์œ  ๊ณ„์ •์˜ ๊ฒŒ์‹œ๊ธ€์ด ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ..

 

๊ทธ์ € ๋กœ๊ทธ์ธ ์—†์ด ๋กœ์ปฌ์—์„œ๋งŒ ๊ธฐ๋Šฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค..

 

๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ํŒ€๊ณผ ํ•จ๊ป˜ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ฃผ์š” ๋ชฉํ‘œ์— ๊ฐ€๊น๋„๋ก ์ง„ํ–‰ ์ค‘์— ์žˆ์œผ๋‚˜,

 

ํ˜„์žฌ๊นŒ์ง€๋„ ์—…๋กœ๋“œ ๋˜๋Š” ๊ฒŒ์‹œ๊ธ€์˜ ๊ณ ์œ  id ๊ฐ€ ๋ถ€์—ฌ๋˜์ง€ ์•Š์•„ ์กฐ๊ฑด ์—†์ด ์—…๋กœ๋“œ ๋˜๋Š” ์ƒํ™ฉ์ด๋‹ค..

 

API ๋‚˜ JQuery ์กฐ๊ฑด ์„ค๊ณ„๊ฐ€ ์‹œ๊ธ‰ํ•˜๋‹ค.. ใ… ใ… 

 
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.