class EntryAdmin(admin.ModelAdmin):
pass
admin.site.register(Entry,EntryAdmin)
2.EntryAdmin의 고급 관리 기능 1.list_display 2.list_display_links 3.list_editable 4.list_filter 5.search_field 6.date_hierarchy 7.fields 8.fieldsets ===================================================
관계 매핑
일대일 매핑
문법은 관련된 두 클래스 중 어느 클래스에나 있다. 속성 = 모델스.OneToOneField(Entry)
예
class Author(models.Model):
xxx xxx
class Wife(models.Model):
xxx xxx
#
author=models.OneToOneField(Author)
``
연습:1.다음 속성을 가진 Wife 클래스를 만듭니다.name , 2.age 2.Wife 클래스에 일대일 연관 관계를 추가하려면 Author 3.데이터베이스로 동기화 및 결과 관찰
조회는 와이프에서, author 속성을 통해 대응하는 author 대상을 찾고,wife 속성을 통해 대응하는 와이프 대상을 찾습니다
예시 한 출판사에서 여러 권의 도서를 출판할 수 있도록 허용하고 한 권의 도서는 한 출판사 class Publisher(models.Model): xxx xxx class Book(models.Model): xxx xx publisher = 모델스.ForeignKey(Publisher,null=True)
연습:1.Book과 Publisher 사이의 일대다 2를 완성합니다.데이터베이스 효과 보기 3.백그라운드에 로그인하여 Book 엔티티 보기
데이터 조회
Book 조회 Publisher를 통해publisher 속성 조회를 통해 연습할 수 있다. 서유기에 대응하는 출판사 정보를 조회하고 단말기에 출력할 수 있다
Publisher를 통해 대응하는 모든 Books Django는 Publisher에 대응하는 Book에 대한 조회 인용 속성을 표시합니다: bookset (Entry.objects)
멀티 쌍 멀티 매핑 1.문법은 관련된 두 클래스 중 임의의 클래스에 추가됩니다: 속성 = 모델스.ManyToManyField(Entry) 2.예시 한 작가가 여러 권의 책을 출판할 수 있고 한 권의 책이 여러 작가가 동시에 편찬할 수 있다
class Author(models.Model):
xxxx xxxx
class Book(models.Model):
xxxx xxxx
authors = models.ManyToManyField(Author)
데이터 조회 1.Book 쿼리에 대응하는 모든 Authors는 authors를 통해 모든 Author에 대응하는 쿼리 대상을 나타낼 수 있다
book.authors.all() -> book author
book.authors.filter(age__gt=80) -> book 80
.Author를 통해 대응하는 모든 북스 Django를 검색하면 속성 북이 생성됩니다.set은 대응하는 북에 대한 조회 대상
author.book_set.all()
author.book_set.filter()
을 표시하는 데 사용됩니다.
request - 요청 객체
Request Http Request가 무엇인지, Django에서 요청 대상입니다. 기본적으로 보기 처리 함수의 매개 변수에 봉인됩니다. - Request
Request의 구성원
request.scheme: 요청 프로토콜
request.body: 요청 바디(POST, PUT)
request.path: 요청한 구체적인 자원 경로
request.get_full_path: 요청된 전체 경로
request.get_host(): 요청된 호스트
request.method: 요청 방식
request.GET: get 요청 시 캡슐화된 데이터
request.POST:post 요청 방식에 포함된 데이터
request.COOKIES: 요청된 cookies에 대한 데이터
request.META: 요청된 메타데이터(메시지 헤더) request.META['HTTP REFERER']: 소스 주소 요청
request.method 사용: Request를 판단합니다.method값, 사용자의 요청 의도 분석
if request.method == 'GET':
else:
요청한 데이터 가져오기
get 방식 사용
문법request.GET[매개 변수 이름] request.GET.get ('매개 변수 이름', '기본값') request.GET.getlist ('매개 변수 이름')
문법request.POST [매개 변수 이름] request.POST.get ('매개 변수 이름', ') request.POST.getlist ('매개 변수 이름')
CSRF 인증 CSRF Cross-Site Request Forgey 사이트 간 위장 솔루션 요청: 1.csrf 검증을 취소하고 settings를 삭제합니다.py의 MIDDLEWARE의 CsrfViews MiddleWare의 중간부품 2.오픈 유효성 검사 보기 처리 함수 증가: @csrfprotect @csrf_protect def post_views(request): pass 3. 인증을 통과하려면 폼에 탭 {% csrf token%}
을 추가해야 합니다
연습: 과수원 프로젝트의 등록 부분 1.데이터베이스 만들기 - FruitDay 2.솔리드 클래스 만들기 - Users 1.uphone - varchar(11) 2.upwd - varchar(50) 3.uemail - varchar(245) 4.uname - varchar(20) 5.isActive - tinyint 기본값은 1(True) 3.완벽한 등록 -/register/1.get 요청이면register로 가세요.html 2.post 요청이라면 요청 데이터를 처리하여 제출한 데이터를 데이터베이스에 저장