Programming
[Django] 스터디
finite
2022. 12. 28. 23:25
반응형
Pycharm 에서는..
conda install django
Else..
pip install django
장고 프로젝트 시작
django-admin startproject config .
manage.py 파일이 있는 곳에서 실행해보면.. demo화면 나옴
python manage.py runserver
프로젝트에 app 추가하려면
python manage.py startapp YOUR_APP_NAME
이제 django 구현을 위해서는 MVT pattern을 알아야 한다.
Model : models.py
Views : view.py
Template : template 폴더 내에 html v파일들
django DB 사용하려면
models.py 에 db 필드 선언 클래스를 만들고,
from django.db import models
from time import timezone
# Create your models here.
# FrigeItem Attribute :
# Item : 냉장고에 들어간 물품(Mandantory)
# date_input : 웹페이지에 쓴 날짜(Auto)
# date_add_frige : 냉장고에 들어간 실제 날짜(Mandantory)
# freezing : 냉장고/냉동고.. null or !yes : 냉장고, yes : 냉동고
# date_expire : 유통기한(Optional)
# quantity : 수량(Optional)
# source : 어디서 얻게 된 것인지(Optional)
# etc : 기타(Optional)
class FrigeItem(models.Model):
item = models.CharField(max_length=50)
date_input = models.CharField(max_length=50, null=True)
date_add_frige = models.CharField(max_length=50, null=True)
freezing = models.CharField(max_length=50, null=True)
date_expire = models.CharField(max_length=50, null=True)
quantity = models.CharField(max_length=50, null=True)
source = models.CharField(max_length=200, null=True)
etc = models.CharField(max_length=200, null=True)
만든 클래스 내용을 db로 전환해줘야해서
python manage.py makemigrations
python manage.py migrate
views.py에 DB 내용 rendering..
# Create your views here.
def index(request):
#myFrigeItem = FrigeItem.objects.all().order_by('-quantity').values()
myFrigeItem = FrigeItem.objects.all().values()
template = loader.get_template('frige/frige.html')
context = {
'myFrigeItem': myFrigeItem,
#'myFrigeItem_Idx': 1,
}
return HttpResponse(template.render(context, request))
templates 에는 views.py에 있는 context를 뿌려주면
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="10">
<title>냉장고</title>
</head>
<body>
<h1>냉장고</h1>
<p>
<a href="add/">냉장고 물품 기입하기</a>
</p>
<table border="1">
<tr>
<td>구 분</td>
<td>물 품</td>
<td>들어온 날짜</td>
<td>유통 기한</td>
<td>수 량</td>
<td>출 처</td>
<td>기 타</td>
<td>수 정</td>
<td>삭 제</td>
</tr>
{% for x in myFrigeItem %}
{% if x.freezing != '냉동' %}
<tr>
<td>{{ x.id }}</td>
<td>{{ x.item }}</td>
<td>{{ x.date_add_frige }}</td>
<td>{{ x.date_expire }}</td>
<td>{{ x.quantity }}</td>
<td>{{ x.source }}</td>
<td>{{ x.etc }}</td>
<td><a href="{% url 'update' x.id %}">Update</a></td>
<td><a href="{% url 'delete' x.id %}">Delete</a></td>
</tr>
{% endif %}
{% endfor %}
</table>
<h1>냉동고</h1>
<table border="1">
<tr>
<td>구 분</td>
<td>물 품</td>
<td>들어온 날짜</td>
<td>유통 기한</td>
<td>수 량</td>
<td>출 처</td>
<td>기 타</td>
<td>수 정</td>
<td>삭 제</td>
</tr>
{% for x in myFrigeItem %}
{% if x.freezing == '냉동' %}
<tr>
<td>{{ x.id }}</td>
<td>{{ x.item }}</td>
<td>{{ x.date_add_frige }}</td>
<td>{{ x.date_expire }}</td>
<td>{{ x.quantity }}</td>
<td>{{ x.source }}</td>
<td>{{ x.etc }}</td>
<td><a href="{% url 'update' x.id %}">Update</a></td>
<td><a href="{% url 'delete' x.id %}">Delete</a></td>
</tr>
{% endif %}
{% endfor %}
</table>
</body>
</html>
일단 여기까지
반응형