[Django] 무작정 따라하기 - 1

Wooney98·2022년 11월 29일
1

PlayData_BackEnd

목록 보기
12/33
post-thumbnail

모델 만들기

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되는 시스템상의 시점

모델 DB에 적용

Cmd TERMINAL창

python manage.py makemigrations   # db적용코드 만들기
python manage.py migrate              # db적용하기

코드를 실행하게 되면 migrations에 0001_initial.py가 생성됨

DB가 적용됬는지 확인하기!

  • DBeaver

url 패턴 만들기

urls.py

views.py에서 write를 정의해줘야한다.

앱의 View 함수 정의하기

views.py

🔥딕셔너리 타입으로 html 템플릿에 전달
🔥write.html => Template파일이므로 생성해줘야함

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에서는 변수로 선언

Article모델과 mapping될 Form 작성

forms.py
community폴더안에서 forms.py을 생성한다.

Article 모델을 상속받기위해 import하고, Meta 클래스의 예약어인 model 변수에 import한 Article을 저장한다.

View에서 Form 객체 생성

views.py

  • Form 클래스를 상속하기위해 import한다.
  • form 변수에 Form의 생성자를 저장.

Template에서 Form 랜더링하기

<body>
    <p>{{data1}} </p>
    <h1>{{data2}}</h1>
    <form action="" method="post">
        <table>
            {{form}} {% csrf_token %}
            <!-- 데이터를 서버로 넘길때 필요한 토큰 
            csrf 공격을 받지 않게 하기위해 사용-->
        </table>
        <button type="submit">확인</button>
    </form>

</body>

Form 데이터 따른 view 처리

🔥의사코드
if,
requset의 메소드가 POST이면,
사용자가 입력한 form 데이터를 변수에 저장하고,
ORM으로 DB에 저장!
else 처리


이와같이 DB에 새로 업데이트가 된다.

profile
👨Education Computer Engineering 🎓Expected Graduation: February 2023 📞Contact info thstjddn77@gmail.com

0개의 댓글