-
5주차 - Day2 Django로 동적 웹 페이지 만들기교육/프로그래머스 인공지능 데브코스 2021. 5. 18. 23:33728x90
1. django4 - model
데이터베이스 : 데이터를 저장하는 시스템(구조화!)
-Relational DB : 테이블 형태로 저장 cf)pandas.df -> SQL을 사용해서 DB조작 Django에선 "ORM"이라는 것을 사용!
#models.py from django.db import models #클래스 형태로 만듦 class <모델이름>(models.Model): Field1 : Field1 종류 Field2 : Field2 종류 ... ''' 문자열 : CharField(),... 숫자 : IntegerField(), SmallIntegerField(), ... 논리형 : BooleanField(),... 시간/날짜 : DateTimeField(),... '''
#admin.py from django.contrib import admin from .models import <모델이름> #admin.py에서 모델을 자유롭게 다룰 수 있음 # Register your models here. admin.site.register(<클래스이름>)
바로 http://127.0.0.1:8000/admin/ 에 클래스(Relational DB)가 올라가지 않음
migration을 해줘야 올라감
python manage.py makemigrations homepage python manage.py migrate
from django.db import models # Create your models here. class Coffee(models.Model): def __str__(self): return self.name name=models.CharField(default='',null=False, max_length=30) price=models.IntegerField(default=0) is_ice=models.BooleanField(default=False)
2. django5 - Template에서 Model 확인하기
1.모델을 만듦
2.view에서 모델을 import하고 모델에 해당하는 값을 가지고 옴 dictionary타입으로 html 템플릿에 넘겨줌
3.html 템플릿에서 템플릿 변수와 템플릿 태그를 이용해서 데이터들을 처리
#homepage.coffee.html <!DOCTYPE html> <html> <head> <title>Coffee List</title> </head> <body> <h1>My Coffee List</h1> {% for coffee in coffee_list%} <p>{{coffee.name}},{{coffee.price}}</p> {%endfor%} </body> </html>
3. django6 - Form으로 Template에서 Model 수정하기
#homepage.form.py from django import forms from .models import Coffee #Model 호출 class CoffeeForm(forms.ModelForm): #ModelForm을 상속받는 CoffeeForm생성 class Meta: model = Coffee fields=('name','price','is_ice')
#coffee.html <!DOCTYPE html> <html> <head> <title>Coffee List</title> </head> <body> <h1>My Coffee List</h1> {% for coffee in coffee_list%} <p>{{coffee.name}},{{coffee.price}}</p> {%endfor%} <form method="POST"> {% csrf_token %} {{coffee_form.as_p}} <button type="submit">Save</button> </form> </body> </html>
#homepage.form.py from django import forms from .models import Coffee #Model 호출 class CoffeeForm(forms.ModelForm): #ModelForm을 상속받는 CoffeeForm생성 class Meta: model = Coffee fields=('name','price','is_ice')
#views.py def coffee_view(request): coffee_all=Coffee.objects.all() #만약 request가 POST라면: if request.method=="POST": #POST를 바탕으로 FORM을 완성하고 form=CoffeeForm(request.POST) #완성된 Form #채워진 FORM이 유효하면 if form.is_valid(): #Form내용을 Model에 저장 form.save() form=CoffeeForm() return render(request, 'coffee.html',{"coffee_list":coffee_all, "coffee_form":form})
'교육 > 프로그래머스 인공지능 데브코스' 카테고리의 다른 글
[6주차 - Day1] ML_basics - Probability (0) 2021.06.01 Monthly Project1 (0) 2021.05.25 5주차 - Day1. Web Application with Django (0) 2021.05.18 4주차 - Day 4. EDA Project (0) 2021.05.13 4주차 - Day 3. 데이터 씹고 뜯고 맛보고 즐기기 - EDA (0) 2021.05.13