Account.objects.all()을 사용할 때 원하는 슬라이싱을 할 수 있다.
ex Account.objects.all()[1:3:2]
class Account(models.Model):
# 장고 유저와 내가 만든 모델 1대1 연결
user = models.OneToOneField(User, on_delete=models.CASCADE)
nickname = models.TextField(max_length="20")
position = models.TextField(max_length="20")
def __str__(self):
return self.nickname
class Meta:
ordering=['id'] # 오름차순 정렬
#ordering=['-id] 내림차순
Model 클래스 안에 Meta 클래스를 선언하고 ordering에 칼럼을 명시하면 해당 칼럼을 기준으로 "-"를 붙이면 내림차순 붙이지 않으면 오름차순으로 객체들이 정렬되어 저장된다.
django-debug-toolbar를 활용한 sql 디버깅
$pip install django-debug-toolbar
django-debug-toolbar를 설치하고 자신의 django프로젝트의 settings.py의 INSTALLED_APPS에 'debug_toolbar'를 추가해주세요.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
'debug_toolbar',
]
혹시 자신의 settings.py와 다르더라도 괜찮습니다. 제가 개발하던 프로젝트에서 가져온것이니까요
동일하게 settings.py의 MIDDLEWARE에 'debug_toolbar.middleware.DebugToolbarMiddleware' 를 추가해 줍니다.
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
sql을 디버깅할 때 확인할 수 있는 정보는 매우 중요한 정보들이기 때문에 자신의 로컬 서버를 작동시켰을 때만 확인할 수 있도록
settings.py에 INTERNAL_IPS를 추가하고 로컬서버의 ip인 '127.0.0.1'을 넣어줍니다.
INTERNAL_IPS=['127.0.0.1']
다음으로는, 각 앱에 만든 urls.py가 아닌 project 안에 있는 urls.py에
from django.conf import settings
settings를 import 해온 후,
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
path('__debug__/',include(debug_toolbar.urls)),
]
위의 코드를 넣어준다.
이후 로컬에서 서버를 키게 되면 화면 우측에 아래와 같은 디버그 툴바가 생겨서 다양한 사항들을 확인할 수 있습니다.
* template에 <body> 태그가 없다면 디버그 툴바가 보이지 않습니다. 참고해주세요
django-debug-toolbar는 ajax 통신 내역은 디버깅할 수 없습니다. ajax 통신은 django-querycount 패키지를 사용하면 디버깅할 수 있습니다.
'Django' 카테고리의 다른 글
[Django] Postgresql 연동하기 (0) | 2021.02.01 |
---|---|
[Django] Django ORM - ForeignKey (0) | 2021.01.08 |
[Django] django ORM 정리 (0) | 2021.01.08 |
[Django] Django Admin 새롭게 안 사실 정리 (0) | 2021.01.08 |
[Django] Django 개발 환경 세팅 (0) | 2020.12.29 |