#14 Model, DB ์ฐ๋
- ์ฅ๊ณ ์์ Model์ ์ฅ๊ณ ๋ db๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ
python manage.py makemigraions
⇒ models.py ์ ์ ์ด๋ ์ฝ๋๋ฅผ db์ ์ฐ๋์ํฌ ํ์ผ์ ๋ง๋ค์ด์ค
python manage.py migrate
⇒ DB์ ์ฐ๋
db.sqlite3
์ด๊ฒ db
์ฌ๊ธฐ์ ๋ชจ๋ ์ ๋ณด ์ ์ฅ๋จ
** migrations ์์ ์๋ migration ํ์ผ ์์๋๋ก ์ง์ฐ์ง ๋ง๊ธฐ.!!
#15 HTTP ํ๋กํ ์ฝ GET, POST
์๋ฒ์ ํต์ ์ ํ ๋ ์๋ฒ๊ฐ ํ์๋ก ํ๋ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๋ฃ์ด์ฃผ๋ ๋ฐฉ์
⇒ GET, POST๊ฐ ์์
GET
์ฃผ๋ก ์กฐํ๋ฅผ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
์ฃผ์ ์์ ์ถ๊ฐ์ ์ธ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด์ ๋ณด๋
POST
์๋ฒ ์์ ์ ๋ณด๋ฅผ ์๋ก ๋ฃ๊ฑฐ๋ ์์ ํ ๋
๋ณด๋ผ ์ ๋ณด๊ฐ ๋ง์ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์
BODY์ ๋ฐ๋ก ์ ๋ณด๋ฅผ ๋ฃ์ด์ ๋ณด๋
http์ํ๋ก ํต์ ์ค์ ๋์ด์ ๋ณด๋ฉด ์ํธํ ์๋ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ๋ณผ ์ ์์
https ๋ก ์ํธํ ํ์
#16 GET, POST ์ค์ต
post
post๋ฅผ ์ฐ๊ธฐ ์ํด์๋ ์ฝ๋๋ด์ form์ ๋ง๋ค์ด์ฃผ์ด์ผํจ
์ ์กํ ๋ฐ์ดํฐ๋ค์ด form์์ ๋ค ๋ค์ด๊ฐ๊ฒ ๋จ
{% csrf_token %}
์๋ฅผ ํญ์ ์ ์ด์ฃผ์ด์ผ POST ์๋!
views.py ๋ ์์ ํด์ฃผ๋ฉด ์๋์ฒ๋ผ ๋์
#17 POST ํต์ ์ ํตํ DB ๋ฐ์ดํฐ ์ ์ฅ ์ค์ต
if request.method=="POST":
temp=request.POST.get("hello_world_input")
new_hello_world = HelloWorld()
new_hello_world.text=temp
new_hello_world.save()
post์ธ ๊ฒฝ์ฐ request์์ input ๋ฐ์์ค๊ณ , HelloWorld ๋ถ๋ฌ์์ .text์ ๊ฐ ๋ฃ์ด์ค ๋ค ์ ์ฅ
์ ๋ ฅ์ผ๋ก ๋ฃ์ text๊ฐ db์ ์ ์ฅ๋จ & ํ๋ฉด์ ์ถ๋ ฅ
{{hello_world_output.text}}
์ด๋, ๊ฐ์ฒด์ text๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ผ ๊ทธ๋ฅ text์๋๊ณ ๊ฐ์ฒด๋ช .text ํด์ค
#18 DB ์ ๋ณด ์ ๊ทผ ๋ฐ ์ฅ๊ณ ํ ํ๋ฆฟ ๋ด for loop
db์ ์ ์ฅ๊น์ง ํ์ผ๋ ์ด ์ ์ฅ๋ ์ ๋ณด ๋ถ๋ฌ์์ ํ๋ฉด์ displayํ๊ธฐ
hello_world_list=HelloWorld.objects.all()
return render(request,'accountapp/hello_world.html', context={'hello_world_list':hello_world_list})
.all()๋ก ๋ชจ๋ ์ ๋ณด ๋ถ๋ฌ์๊ณ returnํ ๋ ๋๊ฒจ์ค
{% if hello_world_list %}\\
{% for hello_world in hello_world_list %}
<h4>
{{hello_world.text}}
</h4>
{% endfor %}
for๋ฌธ ๋๋ฉด์ ๋ฐ์์จ ๋ฐ์ดํฐ์ text ๊ฐ์ h4๋ก ํ๋์ฉ display
์ ๋ ฅ ์์ด post๋ง ํ ๋ ์ด์ ์ ๋ ฅ๊ฐ์ด ๊ณ์ ๋ค์ด๊ฐ์ง ์๊ณ ์ฌ์ฐ๊ฒฐ๋ง ๋๋๋ก
return HttpResponseRedirect(reverse('accountapp:hello_world'))
views.py์์ return ์์ ๊ฐ์ด ์์
์ค์ต ๊ฒฐ๊ณผ
๋ฐํ์๋์ ์ธํ๋ฐ ๊ฐ์๋ฅผ ์๊ฐํ๋ฉฐ ์ ๋ฆฌํด๋ณด๋ ๊ธ์ ๋๋ค.
https://www.inflearn.com/course/%EC%9E%A5%EA%B3%A0-%ED%95%80%ED%84%B0%EB%A0%88%EC%8A%A4%ED%8A%B8