본문 바로가기
내일배움캠프/Django

Django 3일차

by useSword 2024. 4. 12.


데이터를 추가할때마다 2가지를 진행해야함
1. 마이그레이션
python manage.py makemigrations 
2. 반영되지 않은 마이그레이션 반영
python manage.py migrate


ctal + shift + p를 통해 sqlite를 확인(vscode sqlite가 존재해야함.)
(7방향에서 DB확인)


auto now

    created_at = models.DateTimeField(auto_now_add=True) #추가될 때 업데이트
    updated_at = models.DateTimeField(auto_now=True) #수정될 때 업데이트




ORM 
객체 관계형 맵핑

MANAGER
MYMOEL.obiects.all()
python manage.py shell


requirements.txt에 사용된 라이브러리 정리하여 생성
pip freeze > requirements.txt


장고 쉘 (장고가 사용할 수 있는 모든 기능을 담은 쉘)
python manage.py shell_plus


확장프로그램

django-extensions : 장고 쉘에서 더 많은 기능 제공
"django_extensions", setting의 installed app에 추가

ipython : python shell에 여러가지 기능 더함. ex) 자동완성, 색상 등


db에 저장하는법

In [1]: Article.objects.all()
Out[1]: <QuerySet []>

In [2]: article=Article()

In [3]: article.title = '첫번쨰 내용'

In [4]: article.content = '첫번째 내용'

In [5]: Article.objects.all()
Out[5]: <QuerySet []>

In [6]: article.save()

In [7]: Article.objects.all()
Out[7]: <QuerySet [<Article: Article object (1)>]>




다른 방법 : 
Article.objects.create(title='third title', content='마지막 방법임')
# save()가 필요하지 않음


수정하기
article = Article.objects.get(id=1)
article.title = 'updated title'
article.save()


삭제하기
article = Article.objects.get(id=2)
article.delete()




get
리소스 조회
>>DB에 변화를 주지 않는 요청
read


post
서버로 데이터를 전송할 때
>> DB에 변화를 주는 요청
create,update,delete 해당


POST로 요청할 떄
csrf를 잊지말것

<form action="{% url 'create' %}" method="POST">
    {% csrf_token %} >>> 중요! 토큰을 통해 보안을 강화
    <label for="">제목</label>
    <input type="text" name="title"><br><br>

    <label for="">내용</label>
    <textarea name="content" id="content" cols="30" rows="10"></textarea>

    <button type="submit">저장</button>
</form>


삭제를 할 때 주의해야할 점

def delete(request, pk):
    if request.method == "POST":  <<요놈이 중요. 없으면 해당 url을 들어가기만 해도 삭제됨. 그래서 post로만 삭제되도록 조건문을 걸었음
        article = Article.objects.get(pk=pk)
        article.delete()
        return redirect("articles")
    return redirect("detail", pk)

'내일배움캠프 > Django' 카테고리의 다른 글

Django 7일차  (1) 2024.04.19
Django 5일차  (0) 2024.04.17
Django 4일차  (1) 2024.04.16
Django 2일차  (0) 2024.04.12
Django 기초 1일차  (0) 2024.04.08