일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 추상클래스
- removetooltip
- Python
- 상속
- 아스키코드
- 정렬알고리즘
- python3
- 알고리즘
- 가상환경
- richtext
- 속초여행
- 코딩독학
- BeautifulSoup
- 성수동카페
- 부스트코스
- 컴퓨터과학
- 자바
- c언어문자열
- 노마드코더
- 장고
- pipenv
- FLUTTER
- Django
- 건대입구맛집
- DOM
- 강원도속초맛집
- JavaScript
- popupmenubutton
- 남양주맛집
- 포인터
- Today
- Total
목록Framework (29)
YUYANE
crispy form? 부트스트랩 폼과 장고를 통합하는 패키지로 장고 프로젝트에서 부트스트랩 폼을 만드는 데 도움을 준다. crispy form 적용 전 {% extends "blog/base.html" %} {% block content %} {% csrf_token %} Login {{ form }} Login Do you need an account? Sign up {% endblock content %} crispy form 적용 후 {% extends "blog/base.html" %} {% load crispy_forms_tags %} {% block content %} {% csrf_token %} Login {{ form | crispy }} Login Do you need an accou..
문제 상황 앱 폴더의 model.py 을 수정 했는데, makemigrations을 해도 'No chages detected'만 떴다. 해결 방법 Project 폴더 settings.py -> INSTALLED_APPS 에서 해당 앱을 추가하자. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', ]
view.py 종류 : function-based, class_based url은 요청에 바로 응답하는 방법이고, view는 요청에 반응하는 방법 urls.py에서 호출되는 url에 매핑된 클래스/메서드를 모아놓은 파일 페이지가 요청 → 장고는 HttpRequest 객체를 생성 → (url을 통해서) 적절한 view를 로딩해서 HttpRequest를 첫 번째 인자로 전달 → view는 HTTP Response를 반환 HttpRequest 객체는 request에 대한 메타데이터를 담고 있다. FBV에서는 request, CBV에서는 self.request로 접근 render()를 통해 템플릿을 만들어줌으로써 HTTP Response를 반환한다. middleware 는 app을 감싸고 있으면서 request..
학습 강의 nomadcoders.co/airbnb-clone/lobby 장고 프로젝트에서 명령을 실행할 때 아래와 같은 구문을 쓴다. 오늘은 정해진 명령어를 사용하는 대신 명령어를 커스터마이징 하는 방법에 대해 알아보자. python manage.py 명령어 디렉토리 구조 장고 프로젝트에서 어떤 앱이든 커스터마이징 한 command를 manage.py 에 등록할 수 있다. 우선, 아래와 같이 원하는 앱 폴더(polls)에 management/commands 디렉토리를 추가하자. polls/ __init__.py models.py management/ commands/ _private.py closepoll.py tests.py views.py 그러면 Django는 이름이 밑줄로 시작하지 않는 디렉토리의 ..
model 메소드 오버라이딩 - 장고 model에는 데이터베이스 관련 작업을 담고 있는 메소드(아래 링크 참고)가 많은데, 원하는대로 커스터마이징이 가능하다. docs.djangoproject.com/en/3.1/ref/models/instances/#model-instance-methods - 부모 클래스를 호출하는 super()*를 사용한다. *super() 예시 - 부모 클래스 : Animal - 자식 클래스 : Cat class Animal(): def __init__(self, name): self.name = name def say(self): print("나는 동물이에요.") class Cat(Animal): def say(self): super().say() print("나는 고양이에요."..
학습 강의 nomadcoders.co/airbnb-clone/lobby MEDIA_ROOT - 장고에게 파일 업로드 하라고 알려주는 절대 경로; 파일이 저장 될 위치 - STATIC_ROOT와 달라야 한다. - config - settings.py 에서 설정 - 예시 코드 업로드 되는 파일은 'uploads' 폴더에 저장될 것이다. MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') MEDIA_URL - MEDIA_ROOT로 서브 된 미디어 파일을 처리하는 URL; - '/'로 끝나야 한다. - 시작할 때 '/'를 써야 절대 경로를 만들어준다. 그렇지 않으면 상대 경로가 생성되는데, 루트에서 시작하지 않고, 현재 위치 URL 끝에서 파일명이 붙는다. - 예시 MEDIA_U..
학습 강의 nomadcoders.co/airbnb-clone/lobby 지금까지 models.py를 통해 데이터 구조도 만들고, 데이터를 불러올 수도, 저장할 수도 있었다. 오늘은 조금 더 깊숙이 들어가 장고가 어떻게 데이터를 관리하고 있는 지 알아보자. QuerySet - 데이터베이스에 있는 객체들의 집합 - model의 Manager를 통해 QuerySet을 얻을 수 있다. Django Managers - 장고 models는 데이터베이스 쿼리 작업을 할 수 있는 인터페이스를 제공하는데, 이것은 Manager라고 한다. - 장고 앱의 각각의 모델에는 적어도 하나의 Manager가 존재한다. - 클래스명.objects를 통해서 Manager를 부를 수 있다. ex) Person.objects Manage..
Meta Class Model metadata는 모델에서 필드가 아닌 것을 가리키며 Meta class를 통해 구현된다. 필수가 아닌 옵션으로 아래 링크에서 목록을 확인할 수 있다. docs.djangoproject.com/ko/3.1/ref/models/options/ Abstract Base Class - 여러가지 모델에서 공통으로 사용되는 정보가 있을 때 유용한 클래스 - 클래스의 Meta클래스에서 'abstract=True'라고 적음으로써 정의(abstract의 default 값은 False) - 데이터베이스 테이블 생성에는 사용되지 않으나, 다른 클래스가 상속할 경우에 해당 크래스(child class)의 필드로 추가된다. - manager 를 가지지 않고, 초기화되거나 직접적으로 저장될 수 없..