본문 바로가기

dev/Django

[Django]admin.py

장고에서 기본적으로 제공하는 admin!

모델 클래스만 등록하면 조회/추가/수정/삭제 웹 인터페이스를 admin에서 제공한다.


새로운 프로젝트를 만들어준다.

Django는 새로운 프로젝트가 만들어질 때 다시 설치해줘야한다!

- 터미널 -
pip install django
  : django 설치
django-admin startproject config .
  : 프로젝트(config)
python manage.py startapp post
  : 앱(post)

 

post앱의 models 작성(DB)

python manage.py makemigrations

python manage.py migrate

프로젝트(config)의 urls.py

admin으로 접근하는 경로가 프로젝트의 urls.py에 기본으로 설정되어있다. (settings.py에서도 확인할 수 있다)

 


 

현재 경로설정이 아무것도 되어있지 않고, url에서 admin으로 접근하지 않아 404error(경로문제)가 발생하는 것을 확인

url에 /admin을 추가로 입력하여 admin으로 접근!!

파이챰의 터미널에서 admin의 username과 password를 설정해야한다.

python manage.py createsuperuser
  본인이 원하는 username 입력(ming)
  이메일 입력
  비밀번호 입력
  비밀번호 확인 입력
  y

설정 후 해당 username과 password로 접근

admin의 기본 화면

admin에 post를 추가해주려면 post의 admin.py에 아래의 코드를 추가해준다.

from post.models import Post

admin.site.register(Post)

적용화면

 

post의 +Add를 이용해 추가 가능

ADD POST+를 이용해 Post object를 3개 추가

추가된 post의 이름이 모두 Post object로만 저장되기 때문에

admin.py에서 __str__ 특수메서드를 사용해 지정한 title이 뜰 수 있도록 코드를 입력해준다.

    # 제목에 Post object 대신 title이 뜰 수 있도록 설정
    def __str__(self): # 객체를 문자열로 변경하는 특수메서드.
        return self.title

적용화면

※ 모델이 수정되는 경우 터미널에서 python manage.py migrate 명령어를 입력해줘야 한다!!

  (위 경우는 업데이트를 하지 않아도 적용되는 것을 확인할 수 있음)

 

 

데이터 생성을 admin에서 했기 때문에 shell을 이용한 데이터 생성을 하지 않아도 된다.

Post클래스에서 모델링한 객체(title, content)를 모두 가져온다.

 

posts의 title과 content가 출력될 수 있도록 postlist.html을 작성.

 

list경로가 입력되면 post앱의 views파일을 import하고 postlist함수를 실행한다.

 

/list/로 접근시 출력화면

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'dev > Django' 카테고리의 다른 글

[Django]음식점 페이지 만들어보기~2_비밀번호 추가  (0) 2022.02.15
[Django]ORM(Object-relational mapping)  (0) 2022.02.08
[Django]Model Form  (0) 2022.02.06
[Django]HttpResponse / render  (0) 2022.02.06
[Django]Forms.py (+ CSRF 설명)  (0) 2022.02.06