WEB/Django prac 181

[Django prac][json응답연습] 2. 데이터 응답받기

1. 서버 계속 켜둔 상태 서버를 계속 켜 둔 이유는, 응답을 받아야하기 때문이다. 2. python-request-sample.py 이거 한번 확인해보려고 한다. 3. 터미널 켜기 python python-request-sample.py 이렇게 했을 때, 응답받는 결과물은 list이다. 페이지도 아니고, 그냥 데이터를 준 것이다. 보면 이렇게 리스트로 감싸져있다. 4. 주석 하나씩 풀면서 확인해보기

WEB/Django prac 2024.04.14

[Django prac][Improve query] 4. 최적화

주석처리를 바꿔주면서 결과를 확인해주면 된다. # articles > templates > articles > index_1.html Articles {% for article in articles %} 제목 : {{ article.title }} {% comment %} 댓글개수 : {{ article.comment_set.count }} {% endcomment %} 댓글개수 : {{ article.comment__count }} {% endfor %} # articles > views.py 더보기 from django.shortcuts import render from .models import Article, Comment from django.db.models import Count def in..

WEB/Django prac 2024.04.12

[Django prac][Improve query] 3. 최적화 이론 설명

오늘 최적화의 핵심 => 한번에 잘 가져오자 ! (문제의 원인) 각 게시글마다 댓글의 개수를 반복해서 가져오게 되는 것 # index_1.html 댓글개수 : {{ article.comment_set.count }} (해결방법) annotate 사용하기 게시글을 조회하면서 댓글의 개수까지 한번에 조회해서 가져오기 # articles > views.py def index_1(request): # articles = Article.objects.order_by('-pk') articles = Article.objects.annotate(Count('comment')).order_by('-pk') context = { 'articles': articles, } return render(request, 'art..

WEB/Django prac 2024.04.12

[Django prac][Improve query] 2. 최적화

fixtures 데이터 게시글 10개, 댓글 100개, 유저5개 모델 관계 N:1 Article:User / Comment:Article / Comment:Article N:M Article:User 1. DB data load하기 python manage.py loaddata users.json articles.json comments.json 2. 서버 켜주기 python manage.py runserver 3. 오른쪽에 새로운 툴바 우리가 이 페이지를 띄우기 위해서 SQL문제 요청을 몇 번 보냈고, 몇 ms가 걸렸는지 알 수 있도록 보여주는 것 4. 페이지 하나씩 확인하기 http://127.0.0.1:8000/articles/index-1/ 모든 페이지를 출력한다. 동시에 그 각각의 게시물의 댓글..

WEB/Django prac 2024.04.12

[Django prac][Improve query] 1. 최적화

▶ 최적화의 핵심 DB에 보내는 쿼리의 갯수를 줄이는 것이 핵심이다. DB에 3번 요청하던 것을 1번 요청하는 것으로 바꾸기 나중에 조회시간에서 차이가 많이 난다 * 스켈레톤 코드 1. 초기셋팅 python -m venv venv source venv/Scripts/activate pip install -r requirements.txt 2. migrate 해주기 python manage.py makemigrations python manage.py migrate 3. admin 계정 만들어주기 python manage.py createsuperuser 4. 서버 켜기 python manage.py runserver

WEB/Django prac 2024.04.12

[Django prac][Fixtures] 3. json 파일로 만들었던 데이터 불러오기

loaddata 데이터 불러오기 1. DB만 지워주기 db.sqlite3 지워주기 2. articles > fixtures articles에 fixtures 폴더 만들어주기 그리고 json 파일 3가지 다 이 안으로 이동시키기 3. migrate 해주기 데이터를 load 하기 위해서는 sqlite가 있어야하므로 migrate를 먼저 해주어야한다. python manage.py makemigrations python manage.py migrate 4. load 진행 후 데이터가 잘 입력되었는지 확인하기 데이터가 DB에 잘 들어가있다. python manage.py loaddata articles.json users.json comments.json * 주의사항 만약에 개별적으로 load를 할 경우 순서가..

WEB/Django prac 2024.04.12

[Django prac][Fixtures] 2. 데이터를 json 파일로 만들기

dumpdata 활용 1. json 파일 만들기 git ignore를 하면, 가상환경이 git에 올라가지 않게 된다. 동시에 sqlite도 올라가지 않게 된다. 그 말의 뜻은 우리가 만든 글 데이터, 댓글 데이터 같은 것들도 업로드가 되지 않는다는 것이다. 그렇기 때문에, 우리가 만든 글과 댓글 등의 데이터를 따로 json의 형식으로 저장을 해줘야한다. 그렇게 json의 형식으로 저장해서 git에 올리게 되면, 나중에 이 데이터를 다운받고 그것을 통해서 내가 만들었던 데이터들을 다시 sqlite 안에 넣어줄 수 있게 된다. # 참고 # 이거 말고 밑에 꺼로 사용하기 python manage.py dumpdata --indent 4 articles.article > articles.json 만약, 특수문자..

WEB/Django prac 2024.04.12

[Django prac][Django prac][DB N:M 팔로우] 6.

# accounts > templates > accounts > profile.html 프로필 유저의 팔로잉, 팔로워 수 표시하기 follow, unfollow 버튼 만들기 더보기 {{ person.username }}님의 프로필 페이지 팔로잉 : {{ person.followings.all|length }} / 팔로워 : {{ person.followers.all|length }} {% if request.user != person %} {% csrf_token %} {% if request.user in person.followers.all %} {% else %} {% endif %} {% endif %} {{ person.username }}님이 작성한 게시글 {% for article in pe..

WEB/Django prac 2024.04.12