Backend/Python

Web Framework Django 시작하기(5) - CRUD의 Create

땅지원 2022. 1. 11. 20:10

CRUD

대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능

웹 어플리케이션도 이 4가지외 다른기능은 존재하지 않다.

Create, Read, Update, Delete 

 

Create

#myapp - views.py

def create(request):
    article = '''
    <form action="/create/">
    <p><input type="text" name="title" placeholder="title"></p>
    <p><textarea name="body" placeholder="body"></textarea></p>
    <p><input type="submit"></p>
    </form>
    '''
    return HttpResponse(article)

title과 body를 입력할 수 있는 박스들을 만들고 이 정보들을 전송하기 위해서는 <form>을 이용해야 한다.

여기서 위의 <form>을 그대로 써서 제출을 하게 되면 아래와 같이 URL이 뜨게 된다. 

 

 

http://localhost:8000/read/1

http://localhost:8000/read/?id=1 ==> query string

이 두 URL은 브라우저가 서버로 부터 요청을 하는 GET방식이다.

 

하지만 위의 사진처럼 http://localhost:8000/create/?title=crud&body=crud

서버의 있는 데이터를 변경하려는 작업이다

만약 저 URL가 퍼지게 되면 보안적으로 매우 곤란한 상황이 발생할 수 있기 때문에

위와 같은 방식으로 사용하면 절때 안된다.

 

따라서 <form>의 method를 POST 방식을 사용한다

#myapp - views.py

def create(request):
    article = '''
    <form action="/create/" method="POST">
    <p><input type="text" name="title" placeholder="title"></p>
    <p><textarea name="body" placeholder="body"></textarea></p>
    <p><input type="submit"></p>
    </form>
    '''
    return HttpResponse(article)

이처럼 POST 방식으로 사용하게 되면 위와 같이 깔끔하게 요청이 이루어진다.

 

 

 

 

 

 

출처 : https://youtu.be/JVoKGD9nrY0