2020. 11. 5. 13:37ㆍCoding/Python-Fastcampus
02. MTV - 04. Admin 활용
admin페이지에 FCUSER 앱 등록.
fcuser의 앱에서 admin.py에 코드를 작성한다.
일단은 class FcuserAdmin에 아무런 기능 없이 pass로 둔다.
(fcuser 회원을 관리하는 곳인듯...?)
FCUSER에 회원을 추가, 수정, 삭제 할 수 있다.
'사용자명', '비밀번호'라고 한글로 적혀있는건, 앞서 models.py에서 verbose_name을 지정해줬기 때문이다.
회원 목록을 보기 쉽게 username으로 수정.
기본적으로 회원을 등록하면 위처럼 'Fcuser object(x)' 라는 형식으로 출력되기 때문에 누군지 한눈에 보기 힘들다.
fcuser 앱의 models.py로 다시 돌아가서 아래 코드를 넣어주자.
def __str__(self) :
return self.username
해당 코드는 class Fcuser를 불러올때, 반환되는 문자열의 제어하는 __str__ 을 사용했다.
username을 return해주기 때문에 사용자의 username이 출력된다.
admin페이지에 Field추가.
fcuser앱의 admin.py에 있는 class FcuserAdmin을 pass로 넘겼는데,
필요한 Field값을 추가해준다.
list_display를 통해 원하는 field값을 추가로 표시할 수 있다.
list_display는 list나 tuple형식이어야한다.
list_display는 models.py에서 지정한 Field명을 입력해야하고, 자동으로 verbose_name이 들어가는것 같다.
admin 페이지의 models이름 변경.
기존에 Fcusers로 나와있는 models의 이름을 패스트캠퍼스 사용자 목록으로 변경.
models.py에서 class Meta를 수정해주면 된다.
verbose_name은 단수
verbose_name_plural은 복수
기존 models의 이름을 보면 fcuser가 아니고 fcusers로 복수이기 때문에 복수로 지정해 놓은 '패스트캠퍼스 사용자 목록'이라는 값으로 변경됨을 알 수 있다.
02. MTV - 05. MTV의 T,V만들기 (1) - 회원가입
1단계 : T - Tamplate 생성(회원가입 페이지
register.html생성.
기본틀 생성.
<html>
<head>
</head>
<body>
</body>
</html>
Bootstrap 활용.
getbootstrap.com/docs/4.5/getting-started/introduction/
Introduction
Get started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with jsDelivr and a template starter page.
getbootstrap.com
bootstarp에서 제공하는 css,js와 조금 내리면 있는 start tamplate에 있는 <!-- Required meta tags -->부분까지 복사해서 <head>안에 넣어주자.
<body>부분은 부트스트랩의 기본 틀인 그리드 방식을 이용하기 위해서 위 처럼 만들고,
기본적인 틀 또한 부트스트랩에서 지원하는 내용을 가져오자.
getbootstrap.com/docs/4.5/components/forms/
Forms
Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide variety of forms.
getbootstrap.com
여기까지 작성한걸 저장한 후에 register.html파일을 열어보면,
위처럼 기본적인 양식의 폼이 완성됨을 볼 수 있다.
2단계 : V -view (html 파일을 출력해주는 랜더링 부분.)
views.py에서 작성을 해주면된다.
django에서는 기본적으로 templates폴더를 기본으로 잡고 있기 때문에 추가 경로 없이 'register.html'만 넣어주면 되고,
templates폴더 안에 regist폴더 안에 있다면, 'regist/register.html' 처럼 입력해주면 된다.
3단계 : URL설정.
기본적으로 프로젝트의 urls.py에 추가할 url의 path를 입력한다.
앞서 include한 fcuser앱에 urls.py가 없으므로 만들고 코드를 작성한다.
fcuser.urls에서 path로 연결한 views.register가 바로 이 부분이며, register.html을 불러온다.
정리.
view에서는 페이지를 띄우는 부분을 만든다.
urls.py는 프로젝트단과 앱단이 있는데, 프로젝트단이 상위 분류라 보면 된다.
프로젝트.urls -> 앱.urls -> 앱.views (views안의 함수 -> html출력)
02. MTV - 06. MTV의 T,V만들기 (2) - 회원가입
폼 수정.
이런 모양이 나오게끔, 코드를 수정한다.
데이터 전송.
<form method="POST" action=".">
method를 GET이나 POST로 지정하고, action은 . 을 적으면 기본값으로 작동한다.
크로스도메인 방지.
다른 서버에서 우리 서버에 요청을 하는 크로스도메인을 막기위해서 <form> 안쪽에 {% csrf_token %}을 넣어주면 Djange가 알아서 키값을 확인하며 크로스도메인을 막는다.
Djsngo에서는 기본값이므로 안적으면 오류가 날 수 있다.
페이지 요청 경로 구분.
특정 페이지에 사용자가 접근을 할때,
메뉴나 버튼을 눌러서 들어오는 경우 : POST (코드에 POST로 설정한 경우)
URL을 입력해서 들어오는 경우 : GET
크게 두가지로 나눌 수 있다
랜더링을 해주는 views.py에서 request의 method를 판단해서 return을 나눠주면 된다.
(일단, 상단의 코드는 POST나 GET이나 똑같은 값을 return해준다.)
'Coding > Python-Fastcampus' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 6 회차 미션 (0) | 2020.11.07 |
---|---|
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 5 회차 미션 (0) | 2020.11.06 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 3 회차 미션 (0) | 2020.11.04 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 2 회차 미션 (0) | 2020.11.03 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 1 회차 미션 (0) | 2020.11.02 |