728x90
반응형
Admin site
Django의 가장 강력한 기능 중 하나인 automatic admin interface 알아보기
“관리자 페이지”
• 사용자가 아닌 서버의 관리자가 활용하기 위한 페이지
• 모델 class를 admin.py에 등록하고 관리
• 레코드 생성 여부 확인에 매우 유용하며 직접 레코드를 삽입할 수도 있음
1. admin 계정 생성
python manage.py createsuperuser
- username과 password를 입력해 관리자 계정을 생성 admin 계정 생성
- ❖ email은 선택사항이기 때문에 입력하지 않고 enter를 입력하는 것이 가능
- ❖ 비밀번호 생성 시 보안상 터미널에 입력되지 않으니 무시하고 입력을 이어가도록 함
2. admin site 로그인
- http://127.0.0.1:8000/admin/ 로 접속 후 로그인
- 계정만 만든 경우 Django 관리자 화면에서 모델 클래스는 보이지 않음
3. admin에 모델 클래스 등록
- 모델의 record를 보기 위해서는 admin.py에 등록 필요
# articles/admin.py
from django.contrib import admin
from .models import Article
admin.site.register(Article)
- 등록된 모델 클래스 확인
- 데이터 CRUD 테스트 - admin 페이지에서 데이터를 조작해보기
Static files
웹서버와 정적 파일
- 웹 서버는 특정 위치(URL)에 있는 자원(resource)을 요청(HTTP request) 받아서 제공(serving)하는 응답(HTTP response)을 처리하는 것을 기본 동작으로 함
- 즉, 웹 서버는 요청 받은 URL로 서버에 존재하는 정적 자원(static resource)를 제공
> 정적 파일
- 응답할 때 별도의 처리 없이 파일 내용을 그대로 보여주면 되는 파일
- 사용자의 요청에 따라 내용이 바뀌는 것이 아니라 요청한 것을 그대로 보여주는 파일
- 예를 들어, 웹 서버는 일반적으로 이미지, 자바 스크립트 또는 CSS와 같은 미리 준비된 추가 파일(움직이지 않는)을 제공해야 함
- 파일 자체가 고정되어 있고, 서비스 중에도 추가되거나 변경되지 않고 고정되어 있음
- Django에서는 이러한 파일들을 “Static file”이라 함
- Django는 staticfiles 앱을 통해 정적 파일과 관련 된 기능을 제공
> 정적 파일 활용
- django.contrib.staticfiles가 INSTALLED_APPS에 포함되어 있는지 확인
- settings.py에서 STATIC_URL을 정의
- 템플릿에서 static 템플릿 태그를 사용하여 지정된 상대경로에 대한 URL을 빌드
{% load static %}
<img src="{% static 'my_app/example.jpg'%}" alt="My image">
- 앱의 static 디렉토리에 정적 파일을 저장
- 예시) my_app/static/my_app/example.jpg
load
- 사용자 정의 템플릿 태그 세트를 로드(load)
- 로드하는 라이브러리, 패키지에 등록된 모든 태그와 필터를 불러옴
static
- STATIC_ROOT에 저장된 정적 파일에 연결
{% load static %}
<img src="{% static 'my_app/example.jpg'%}" alt="My image">
STATIC_URL
- STATIC_ROOT에 있는 정적 파일을 참조 할 때 사용할 URL
- 개발 단계에서는 실제 정적 파일들이 저장되어 있는 ‘app/static/’ 경로(기본 경로) 및 STATICFILES_DIRS에 정의된 추가 경로들을 탐색함
- 실제 파일이나 디렉토리가 아니며, URL로만 존재
- 비어 있지 않은 값으로 설정 한다면 반드시 slash(/)로 끝나야 함
STATIC_URL = '/static/'
STATIC_ROOT
- collectstatic이 배포를 위해 정적 파일을 수집하는 디렉토리의 절대 경로
- django 프로젝트에서 사용하는 모든 정적 파일을 한 곳에 모아 넣는 경로
- 개발 과정에서 settings.py의 DEBUG 값이 True로 설정되어 있으면 해당 값은 작용되지 않음
- 직접 작성하지 않으면 django 프로젝트에서는 settings.py에 작성되어 있지 않음
- 실 서비스 환경(배포 환경)에서 django의 모든 정적 파일을 다른 웹 서버가 직접 제공하기 위함
[참고] collectstatic
STATIC_ROOT= BASE_DIR / staticfiles STATIC_ROOT 작성
python manage.py collectstatic collectstatic 명령어
*개발 환경에서는 사용하지 않으니 삭제 후 진행
728x90
반응형
'Python > Django' 카테고리의 다른 글
[Django] 프로젝트(project) 구조 (0) | 2023.01.28 |
---|---|
[Django] Django 앱 구조로 보는 MTV (0) | 2023.01.13 |
[Django] ModelForm (0) | 2022.10.11 |
[Django] Django로 CRUD를 해보자! 게시판만들기 (0) | 2022.10.11 |
Django가상환경 설정하기 (0) | 2022.09.21 |
댓글