728x90
<뷰> - 함수형 뷰와 리스트 뷰가 있음
1.
views.py
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from .models import Bookmark
class BookmarkListview(ListView):
model = Bookmark
2.url 연결 - 어떤 주소를 입력했을 때 뷰가 보일 것인지 연결 (앱 urls.py에 설정 후 루트 urls.py에서 import)
- django3부터는 import url 대신 path사용... 이걸로 엄청 헤맸다.....
config/urls.py
from django.urls import path, include
urlpatterns=[
path('bookmark/', include('bookmark.urls')), // localhost:8000/bookmark/이하주소(여기서부터는 bookmark.urls파일에서 찾겠다는 의미)
]
bookmark/urls.py (새로 직접 생성)
from django.urls import path
from .views import BookmarkListView(뷰 종류에 따라서)
url patterns=[
path('', // bookmark/ 이하부분이 없고 이때 뷰를 호출하겠다는 뜻
BookmarkListView.as_view(),// 이 뷰를 호출하겠다! class뷰일때 as_view()쓴다고 함
name='list')
]
템플릿 파일
앱폴더 / templates / 앱이름 / HTML File 형태로
{{ 변수명 }}
{% 소스코드 %}
두개만 알아도 ..!
{% endfor %}
{% endif %}
for문과 if문은 코드가 끝났다고 알려줘야 한다.
{% csrf_token %}
form 안에는 무조건 넣어주기
{{form.as_p}}
각 필드의 폼 태그를 p태그로 감싸 출력해줌
href="{% url 'add' %}"
bookmark에서 링크클릭후 bookmark/add 됨
.
.
템플릿 확장
BLOCK 태그로 다른 템플릿에서 껴넣을 공간 만든다
template/bookmark/html파일
{% extends 'base.html' %}
.
root/templates/base.html
{% block title %} 제목 {% endblock %}
{% block content %} 내용 {% endblock %}
.
config/setting.py에 추가
'DIRS' : [
os.path.join(BASE_DIR, "templates"),
]
관리자 페이지 커스텀
ex) admin.py
class PhotoAdmin(admin.ModelAdmin):
list_display=[..]
raw_id_fields =
list_filter =..
search_fields =
ordering =
admin.site.register(Photo.PhotoAdmin)
..
밑에는 아직 내가 완벽히 이해 못한 부분들
models.py
from django.urls import reverse
def get_absolute_url(self):
return reverse('detail', args=[str(self.id])
reverse : URL패턴의 이름과 추가인자를 전달받아 URL생성
수정이 완료된 후 이동할 페이지는 뷰에 success_url(reverse_lazy('..'))이 설정되어 있거나 모델에 get_absolute_url이라는 메서드를 통해 결정
.
함수형 뷰 만들기
def photo_list(request): //request는 기본 매개변수
photos = photo.objects.all() // DB의 모든 사진 불러옴
return render(request. 'photo/list.html', {photos:photo}) // list.html을 렌더링(photos 템플릿 변수 전달)
'PYTHON > Django' 카테고리의 다른 글
Django 장고 시작하기 -기본세팅, 앱, 모델 (0) | 2020.03.06 |
---|