Backend/Django
-
filter() - fields loopkups(**kwargs), Q objects(**args)Backend/Django 2023. 12. 3. 17:12
Clone Coding을 하다가 생각없이 사용 중이던 filter() 함수의 사용법을 좀 더 깊게 파보고자 공식 문서를 살펴 보았다. filter() https://docs.djangoproject.com/en/4.2/ref/models/querysets/#filter QuerySet의 Member method 로 lookup parameter를 충족하는 객체들만 모아 새로운 QuerySet 을 생성하여 반환한다. 즉 DB에서 특정 조건(lookup parameter)들로 조회하여 나온 결과를 다시 Model Instance로 생성하여 QuerySet에 담아 반환한다고 볼 수 있다. 조건을 지정하는 방식으로는 field lookups(kwargs에 대입) 와Q object(args에 대입) 가 있다. 여..
-
VS Code에서 Django Debug 설정Backend/Django 2023. 10. 15. 22:54
2023.10.15 Pycharm에서 Django 디버그 를 진행했던 것처럼 VS Code에서 도 Django Debug가 가능한 설정을 진행하려고 함. 참고: https://code.visualstudio.com/docs/python/tutorial-django Python and Django tutorial in Visual Studio Code Python Django tutorial demonstrating IntelliSense, code navigation, and debugging for both code and templates in Visual Studio Code, the best Python IDE. code.visualstudio.com 1. Python Interpreter를 Vi..
-
PyCharm에서 Django 디버그 모드 활성화하기Backend/Django 2023. 10. 10. 23:45
PyCharm 2019.3.5(Professional) 기준 작성 됨. Settings(Ctrl+Alt + S) - Languages & Frameworks - Django ‘Enable Django Support’ 체크 ‘Django project root:’ 에 디버깅할 프로젝트의 최상위 경로 입력 ‘Settings:’ 에 디버깅할 프로젝트의 config/settings. 경로를 입력 끝. OK 클릭 Edit Configuration (상단 메뉴의 Run 하위에 있음.) ‘+’ 버튼 클릭 → Django server 선택 Name은 선택사항. 끝. OK 클릭 디버그 모드 시작하면 python manage.py runserver 부터 실행함. (따로 웹 서버 구동할 필요 x) 원하는 지점에 중단점 찍고..
-
class MetaBackend/Django 2023. 9. 18. 18:32
class Meta django Model에 metadata를 추가하는 기능을 제공. (metadata: 데이터를 설명하는 데이터, 또는 데이터를 목적에 따라 재구성한 데이터) 사용자가 직접 추가하는 Model의 속성(필드)은 매 번 바뀔 수밖에 없다. 그러나 Model의 속성들을 '정렬(ordering)' 하거나, 'DB Table의 이름(db_table)'을 짓거나 어떤 속성의 '복수형 표현(verbose_name, verbose_name_plural)'을 지정하거나 하는 등 일부 사용법들은 대부분의 Model에서 필요하다. 이처럼 Model을 관리할 때 공통적으로 필요한 사용법들의 구체적인 방식을 지정하도록 해주는 것이 class Meta이다. (..라고 나는 이해했다.) 자주 쓰이는 Meta op..
-
django 입문(5) Model 3) DB에 Table 생성Backend/Django 2023. 9. 17. 23:50
Model 설계 및 구성이 완료되면 마이그레이션(Migration)을 해줘야 구현한 모델대로 Database Table이 생성된다. migrate : 장고 프로젝트에 존재하는 App들(ex. models, admin, auth, sessions 등…)이 필요로 하는 데이터베이스 테이블들을 생성.(각 App의 models.py 에 정의된 모델 내용대로 생성됨.) 프로젝트 생성 후 DB 작업이 필요하다면 최초 1 번은 해줘야 할 필요가 있음. python manage.py migrate {app} (작업파일번호) makemigrations: 모델이 신규로 생성되거나 변경되었을 때(즉, 모델을 수정했을 때에도 makemigrations 후 migrate을 실행해야함.), migrate 전에 수행해야 하는 명령..
-
django 입문(5) Model 2) 추가 기능Backend/Django 2023. 9. 17. 23:48
filter() 공식 문서: https://docs.djangoproject.com/en/4.0/topics/db/queries/ django.db.models.Model.objects 의 멤버 함수. parameter로 전달되는 조건을 충족하는 Object를 담고 있는 QuerySet 을 반환한다. 만약 조건을 충족하지 못하면 빈 QuerySet을 반환한다. ( Foreign Key로 다른 model 을 사용할 때 사용할 수 있는 속성 Model A와 B가 있을 때 Model B의 Foreign Key가 A 객체를 가리키면, Model A 객체에서는 a.b_set(a는 객체명, b Model B의 이름을 소문자로 바꾼 것.) 의 사용이 가능하다. 즉 Model A 객체에서 자신을 Foreign Key ..
-
django 입문 (7) 템플릿 파일Backend/Django 2023. 8. 2. 23:54
자주 사용되는 페이지 형식(html)을 템플릿으로 만들어 여러 앱에서 재사용할 수 있음. = 장고의 템플릿 render() 파이썬 데이터를 템플릿에 적용하여 HTML로 반환하는 함수 render(request, {templat파일경로}, 데이터) from .django.shorcuts import render from .models import Question def index(request): question_list = Question.objects.order_by("-create_date") context = {"question_list": question_list} return render(request, "pybo/question_list.html", context) {Model}.objects..
-
django 입문(6) 장고관리자 adminBackend/Django 2023. 7. 12. 23:39
장고관리자화면에 접속할 슈퍼유저 생성: python3 manage.py createsuperuser 장고관리자 페이지 주소: http://{자신의 페이지 주소}/admin/ 장고관리자에 모델 등록 from django.contrib import admin from .models import Question admin.site.register(Question) 장고관리자에 모델을 등록하면 자동으로 장고관리자페이지에 모델이 나타난다. 장고관리자를통해 모델을 사용(=모델 형식대로 데이터 등록, 삭제, 수정 등)할 수 있다. 모델 검색 기능 추가 구조 class {ClassName}(admin.ModelAdmin): search_fields = [{member_var}] 위 클래스는 미리 구현한 모델 클래스(e..