๐ | WEB DEV116 Django_์ฅ๊ณ ๋ถ์๊ธฐ (5)_ํ์ด์ง ์ด๋, ์์ธ ํ์ด์ง ํ์ด์ง ์ด๋ ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ request๋ฅผ ๋ฐ๊ณ ์ ์ ํ url์ ์ฐ๊ฒฐ์์ผ์ฃผ์ด์ผ ํ๋ค. urls.py) - urlํจํด์ path๋ฅผ ์ถ๊ฐํด์ค๋ค. path('url๊ฒฝ๋ก', views.ํจ์๋ช , name='ํ ํ๋ฆฟ ํ๊ทธ์ ์ฐ์ผ ์ด๋ฆ') ์์ path('post_list', views.post_list, name='post_list'), 'main๋ฃจํธ/post_lis't๊ฐ url ๊ฒฝ๋ก๊ฐ ๋๋ค. views.py) request ๋ฑ์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ ๋ฐ์ ๊ฒ์ ์ฒ๋ฆฌํ ํ render, redirect ๋ฑ์ ํจ์๋ฅผ ํธ์ถ, ๋ฐํํ๋ค. template) ํ ํ๋ฆฟ์์๋ ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์ด์ฉํด ํธ์ถํ๋ค. ๋ด์ฉ์ urls.py์ name์ ์ ์๋ ์ด๋ฆ์ ์ด์ฉํ๋ค. ... ์์ธ ํ์ด์ง pk(Primary Key) DB์ ๊ฐ ๋ ์ฝ๋๋ฅผ ์.. 2022. 6. 30. Django_์ฅ๊ณ ๋ถ์๊ธฐ (4)_ํ ํ๋ฆฟ ๋ฌธ๋ฒ Django ํ ํ๋ฆฟ ๋ฌธ๋ฒ template์์ DB์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์ HTMLํ์ผ์ ์ ์ ํ์ผ์ด๋ค. ๊ทธ์ ๋ฐํด ํ์ด์ฌ์ ๋์ ์ด๋ค. ํ ํ๋ฆฟ ๋ฌธ๋ฒ์ ํ์ด์ฌ์ HTML๋ก ๋ณํ์์ผ, ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋์ ์ธ ์น ์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์๊ฒ ๋์์ฃผ๋ ์ญํ ์ ํ๋ค. ๋์ ๋ฐ์ดํฐ ์ ๋ฒ ํฌ์คํ ์์ ๋ค๋ฃจ์๋ ์ฟผ๋ฆฌ์ ์ ์ด์ฉํ์ฌ views.py์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผํ๋ค. ex) from django.shortcuts import render from django.utils import timezone from .models import Post def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).ord.. 2022. 6. 30. Django_์ฅ๊ณ ๋ถ์๊ธฐ (3)_QuerySet Django QuerySet(์ฟผ๋ฆฌ์ ) DB์ ๊ฐ์ฒด๋ค์ ํ ํ๋ฆฟ์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์ ์ด์ฉํ๋ '๊ฐ์ฒด์ ์งํฉ'์ด๋ค. ๊ฐ์ฒด๋ค์ ๋ํ์ฌ ํํฐ๋ง์ ํ๊ฑฐ๋ ์ ๋ ฌ์ ํ ์ ์๋ค. DB(SQL)์์๋ row์ ํด๋นํ๊ณ , ํ์ด์ฌ ์ฝ๋๊ฐ SQL๋ก ๋งคํ๋์ด QuerySet์ด๋ผ๋ ์๋ฃ ํํ๋ก ๊ฐ์ด ๋์ด์จ๋ค. ์ฅ๊ณ Shell ์ฅ๊ณ ์ธํฐ๋ํฐ๋ธ ์ฝ์(interactive console)๋ฅผ ์ด์ฉํ์ฌ ์ฟผ๋ฆฌ์ ์ ๋ํ ๊ฐ์ ํ์ธํด๋ณผ ์ ์๋ค. ํด๋น ์ฝ์์์๋ ์ฅ๊ณ ์ ๋ช ๋ น์ด์ ํ์ด์ฌ์ ๋ช ๋ น์ด ๋ฑ์ ์ด์ฉํ ์ ์๋ค. python manage.py shell ๋จผ์ models.py์์ ์ํ๋ ๋ชจ๋ธ์ ๊ฐ์ ธ์จ๋ค. from blog.models import Post 1. ๋ชจ๋ ๊ฐ์ฒด ๋ฐํ Post.objects.all() 2. ๊ฐ์ฒด ์์ฑํ๊ธฐ ํ์์ ๋ฐ.. 2022. 6. 30. Django_์ฅ๊ณ ๋ถ์๊ธฐ (2)_MVT ์์ฑ Django Model(๋ชจ๋ธ) ๋ชจ๋ธ์ ๊ฐ์ฒด์ ํน๋ณํ ์ข ๋ฅ์ด๊ณ , ์ด๋ฅผ ์ ์ฅํ๋ฉด ๊ทธ ๋ด์ฉ์ด DB์ ์ ์ฅ๋๋ค. ์ฅ๊ณ ๋ App์ ์งํฉ์ผ๋ก ๋ง๋ค์ด์ก๋ค๊ณ ํ ์์๋ค. ์ฆ, ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด์ฃผ์ด์ผํ๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์์ฑ python manage.py startapp blog(app๋ช ) django(ํ๋ก์ ํธ ์์น) โโโ mysite | __init__.py | settings.py | urls.py | wsgi.py โโโ manage.py โโโ blog(App ๋๋ ํ ๋ฆฌ) โโโ migrations | __init__.py โโโ __init__.py โโโ admin.py โโโ models.py โโโ tests.py โโโ views.py ์์ ๊ฐ์ ํธ๋ฆฌ๊ฐ ์์ฑ์ด ๋ ๊ฒ์ด๋ค. ์์ฑํ App์ ๋ํ์ฌ ๊ผญ ํด.. 2022. 6. 30. Django_์ฅ๊ณ ๋ถ์๊ธฐ (1)_๊ธฐ์ด ๋ค์ด๊ฐ๋ฉฐ EAGU ๋์๋ฆฌ ํ๋ ๊ทธ ์ฒซ ๋ฒ์งธ๋ก '๋ธ๋ก๊ทธ ๋ง๋ค๊ธฐ'๋ฅผ ํด๋ณด๊ธฐ๋ก ํ์๋ค ํ๋ ์์ํฌ๋ Django๋ฅผ ์ด์ฉํ๊ธฐ๋ก ํ๋๋ฐ ํ์ฅ๋์ ์ ์ธํ๊ณ ๋๋จธ์ง ๋ฉค๋ฒ๋ค์ ๋ชจ๋ ์ฒ์์ด๋ผ์ ๊ธฐ์ด๋ถํฐ ์์ํ์๋ค. ํ์ฌ ์ฅ๊ณ ์์ ์ฒซ ๋ง๋จ์ ๊ฐ์ง๊ณ 4์ผ์ฐจ! ์ด๋ฒ ํฌ์คํ ๋ถํฐ๋ ๊ณต๋ถํ๋ ์ฅ๊ณ ์ ๊ธฐ์ด์ ์ด์ฌํ ๊นจ์ง๊ณ ๋ถ์์ง๋ฉฐ ์ป์ ๊ฒ๋ค์ ์ ์ด๋ณด๋ ค๊ณ ํ๋ค! Django๋ ๋ฌด์์ธ๊ฐ Django(์ฅ๊ณ )๋ ํ์ด์ฌ ๊ธฐ๋ฐ์ ์น ํ๋ ์์ํฌ์ด๋ค. ์ด์ ์ Flask๋ฅผ ํ ๋ฒ ์ฐ๋จนํด๋ณธ ์ ์ด ์๋๋ฐ ๊ทธ๊ฒ๊ณผ ํจ๊ป ์๋์ฐ๋งฅ๊ณผ ๊ฐ์ ๋๋์ ํฌ์ง์ ์ด๋ค. ๋ฐฑ์๋๋ฅผ ๊ตฌํํ๋ Framework์ด๋ฏ๋ก ํด๋ผ์ด์ธํธ์ request์ ๋ํ ๋ต์ฅ๊ณผ ๊ทธ๊ฒ์ ์ฝํ ์ธ ๋ฅผ ๋ง๋ค ์ ์๋ ์ญํ ์ ํ๋ค. Django์ MVTํจํด (Model View Template) ์ฅ๊ณ ๋ 3๊ฐ์ง.. 2022. 6. 30. JS_๋ฌธ๋ฒ (9)_์ด๋ฒคํธ ์นํ์ด์ง์ ์ด๋ ํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ๊ทธ์ ๋ํด ์ฌ์ฉ์๊ฐ ์ํธ์์ฉ์ ํ ์ ์๊ฒ ํ๋ ๊ฒ์ ๋ํด์ ์์๋ณด์. ์์ ์๋ ํ๊ทธ์ ์ง์ ์์ฑ์ผ๋ก ์๋ฒคํธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์๋ ์์์ง๋ง, ์ต๊ทผ์๋ JS๋ฅผ HTML๊ณผ ๋ถ๋ฆฌํ๊ธฐ์ํด์ addEventListener()๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ํธํ๋ค. ์ด๋ฒคํธ ๋ฑ๋ก ๋์ ์์.addEvenListener(์ด๋ฒคํธ๋ช , ๋ฆฌ์ค๋ํจ์(์ฝ๋ฐฑํจ์)) ์ด๋ฒคํธ๋ช ์ click, intput, focus, mousehover ๋ฑ์ ์ด์ผ๊ธฐํ๋ค. ๋ฆฌ์ค๋ํจ์๋ ๋ง๊ทธ๋๋ก 'ํจ์'๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ๋ฐ๋ผ์ ์ธ์ ์๋ฆฌ์ ํจ์๋ฅผ ์ ์ํด์ฃผ๊ฑฐ๋ ์ ์ํ ํจ์์ ์ด๋ฆ์ ๋ฃ์ด์ค๋ค. (ํจ์์ ์ด๋ฆ์ด ์๋ "ํจ์๋ช ()"์ ํํ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ฐํ๊ฐ์ด ๋ค์ด๊ฐ๋ฏ๋ก ์ ์์๋X) ์ด๋ฒคํธ ์ญ์ ๋์ ์์.removeEvenListen.. 2022. 2. 24. JS_๋ฌธ๋ฒ (8)_DOM CRUD ํํค์น๊ธฐ Create Read Update Delete HTML ์ฐพ๊ธฐ - doucument.getElementById(id๋ช ) : id๋ก ์ฐพ๊ธฐ - doucument.getElementsByTagName(ํ๊ทธ๋ช ) : ํ๊ทธ๋ก ์ฐพ๊ธฐ(๋ฐฐ์ด๋ก ๋ฐํ) - doucument.getElementsByClassName(ํด๋์ค๋ช ) : ํด๋์ค๋ก ์ฐพ๊ธฐ(๋ฐฐ์ด๋ก ๋ฐํ) - document.querySelector(css ์ ํ์) : css ์ ํ์๋ก ์ฐพ๊ธฐ(์ต์ด๋ฑ์ฅ ํ๋๋ง ๋ฐํ) - document.querySelectorAll(css ์ ํ์) : css ์ ํ์๋ก ์ฐพ๊ธฐ(๋ชจ๋ ์์. ๋ฐฐ์ด ํํ์ ๊ฐ์ฒด(์ ์ฌ๋ฐฐ์ด)๋ก ๋ฐํ) (์ธ์๋ก css ์ ํ์๋ฅผ ์ ๋ฌํ๋ค. ' . '(class), ' # '(id), ' * '(all), (tag๋ prefix.. 2022. 2. 24. JS_๋ฌธ๋ฒ (7)_DOM / BOM DOM Document Object Model์ ์ฝ์์ด๋ค Document = HTML ์ ์ฒด ์ฝ๋ Object = HTML ํ๊ทธ DOM์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์์ ๋ณ์์ ๋ฃ๊ณ ๋ณ์or๋ฉ์๋๋ฅผ ์ด์ฉํด ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์ ๋ฑ์ ์ ์ด๋ฅผ ํ๋ ๊ฒ์ ๋งํ๋ค. (ํ์ค์์ฝ) document๋ผ๋ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๊ณ ๊ทธ ์์ ์ฌ๋ฌ๊ฐ์ง ๊ฒ๋ค์ ์ ์ดํ๋ ๊ฒ ์น๋ธ๋ผ์ฐ์ ๋์ ๊ณผ์ | 1 | HTMLํ์ผ ๊ฐ์ ธ์ค๊ธฐ | 2 | ๊ฐ์ ธ์จ HTMLํ์ผ์ ํ์ฑํ์ฌ DOM tree ์์ฑ (ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๋ถ์!) CSS ์ ๋ณด ํ์ฑํ์ฌ CSSOM tree ์์ฑ | 3 | DOM/CSSOM tree๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Render tree ์์ฑ | 4 | Render tree๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋๋ง์ ํ๋ค. ์น๋ธ๋ผ์ฐ์ ๋์๊ณผ์ & JS ์ด๋ฒ์๋ JS๊ฐ ์ฒจ๊ฐ๋ ๊ฒฝ์ฐ.. 2022. 2. 23. JS_๋ฌธ๋ฒ (6)_promise ๋ฉ์๋(catch, finally, all, race ๋ฑ ) catch ๋ฉ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ธ์ํฉ์ ์ฒ๋ฆฌํ๋ค. ๋ง์ฝ failCallback์ด ์ ์๋์ด ์์ง ์์ ๋์๋ reject ์์ catch ๋ฉ์๋ ํธ์ถ๋๋ค. (์์ธ์ํฉ์ผ๋ก ์ธ์) const func = new Promise( (resolve, reject) => { //์ฑ๊ณต, ์คํจ ํจ์์ธ์๋ก ๋ฐ๊ธฐ setTimeout(() => { //๋น๋๊ธฐ ํจ์ ์คํ let num = 10 if (num > 11) { resolve(num)//successCallback } else { reject("error")//failCallback } }, 1000); } ) func .then((item) => { //successCallback console.log('success', item) }) .catch((err) =>.. 2022. 2. 20. ์ด์ 1 ยทยทยท 6 7 8 9 10 11 12 13 ๋ค์