장고에서 기본적으로 제공하는 admin!
모델 클래스만 등록하면 조회/추가/수정/삭제 웹 인터페이스를 admin에서 제공한다.
새로운 프로젝트를 만들어준다.
Django는 새로운 프로젝트가 만들어질 때 다시 설치해줘야한다!
- 터미널 - pip install django : django 설치 django-admin startproject config . : 프로젝트(config) python manage.py startapp post : 앱(post) |
python manage.py makemigrations python manage.py migrate |
admin으로 접근하는 경로가 프로젝트의 urls.py에 기본으로 설정되어있다. (settings.py에서도 확인할 수 있다)
현재 경로설정이 아무것도 되어있지 않고, url에서 admin으로 접근하지 않아 404error(경로문제)가 발생하는 것을 확인
url에 /admin을 추가로 입력하여 admin으로 접근!!
파이챰의 터미널에서 admin의 username과 password를 설정해야한다.
python manage.py createsuperuser 본인이 원하는 username 입력(ming) 이메일 입력 비밀번호 입력 비밀번호 확인 입력 y |
설정 후 해당 username과 password로 접근
admin에 post를 추가해주려면 post의 admin.py에 아래의 코드를 추가해준다.
from post.models import Post admin.site.register(Post) |
post의 +Add를 이용해 추가 가능
추가된 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함수를 실행한다.
'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 |