models.py
from django.db import models
# Create your models here.
class Article(models.Model):
name = models.CharField(max_length=50)
title = models.CharField(max_length=50)
contents = models.TextField()
url = models.URLField()
email = models.EmailField()
cdate = models.DateTimeField(auto_now_add = True)# data가 create되는 시스템상의 시점
Cmd TERMINAL창
python manage.py makemigrations # db적용코드 만들기
python manage.py migrate # db적용하기
코드를 실행하게 되면 migrations에 0001_initial.py
가 생성됨
DB가 적용됬는지 확인하기!
urls.py
views.py에서 write를 정의해줘야한다.
views.py
🔥딕셔너리 타입으로 html 템플릿에 전달
🔥write.html => Template파일이므로 생성해줘야함
templates폴더를 생성하고 write.html 파일 생성
django_tutorial/templates/write.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p>{{data1}} </p>
<h1>{{data2}}</h1>
</body>
</html>
{{data1}}
> views.py의 key가 template에서는 변수로 선언
forms.py
community폴더안에서 forms.py을 생성한다.
Article 모델을 상속받기위해 import하고, Meta 클래스의 예약어인 model 변수에 import한 Article을 저장한다.
views.py
<body>
<p>{{data1}} </p>
<h1>{{data2}}</h1>
<form action="" method="post">
<table>
{{form}} {% csrf_token %}
<!-- 데이터를 서버로 넘길때 필요한 토큰
csrf 공격을 받지 않게 하기위해 사용-->
</table>
<button type="submit">확인</button>
</form>
</body>
🔥의사코드
if,
requset의 메소드가 POST이면,
사용자가 입력한 form 데이터를 변수에 저장하고,
ORM으로 DB에 저장!
else 처리
이와같이 DB에 새로 업데이트가 된다.