오늘과 주말동안 django 강의를 다시 몇 차례 복습하면서 django를 다루는 순서와 django에서 기본적으로 제공하는 기능(함수) 몇 가지를 학습했다.
django로 작업하는 순서
👉프로젝트 생성
👉 프로젝트 구조 세팅(app 생성, settings.py에 install_app추가, django를 실행하여 데이터베이스 연결)
👉ORM = app의 모델(Class)을 만들고 DB에 변경사항 알림 및 적용 / makemigrations, migrate
👉 사용자가 접속할 경로를 설정하기 위해 app의 urls.py 생성하고 프로젝트의 urls.py를 먼저 이어주기
└ include('app이름.urls')를 사용!
👉 views.py에서 ORM(만들었던 모델)으로 함수(기능) 만들기
👉 views.py에서 만든 함수(기능)을 app의 urls와 연결해주기
└ views를 임포트하고 path('사용할url/', 함수명, name='설정할 이름')
👉 views에서 만든 기능이 보여질 html 파일을 생성하고 views에서 html로 부터 들어오는 요청(GET,POST)에 따라 보여줄 화면과 기능을 작성
└ POST 요청 시 모델을 불러와서 DB에 저장할 정보를 담아 저장한다.
└ GET 요청 시 보여줄 화면(html)과 요청받은 정보를 담아 보낸다.
🔥 html 파일은 render / url은 redirect로 화면을 불러와준다.
🔥 POST인 경우 html 파일에서 정보를 보내주는 것이기 때문에 form 태그 안에 method="post" action="/이동할url/"을 넣어준다.
🔥 html의 form 태그에서는 정보를 전달할 때 보안을 위해 {% csrf_token %}을 입력해준다.
🔥 views.py에서 POST 요청을 받을 때는 request.POST.get("받을정보", None)
└ None은 없다면 빈칸으로 두겠다는 뜻
django에서 제공하는 기능(함수)
🚀기본 모델 수정하는 방법🚀
👉 app의 models.py에서 django.contrib.auth.models에 있는 AbstractUser을 임포트
👉 만들고자 하는 모델의 괄호 안 AbstractUser을 상속받고, 기본 모델이 받는 데이터 외 추가로 받을 데이터를 작성
👉 settings.py의 가장 밑에 AUTH_USER_MOELD = "앱.모델명" 입력 (기본 모델을 바꿔 사용하겠다는 걸 장고에게 알리는 것)
👉 makemigrations, migrate로 장고에게 변경된 모델을 알리고 적용
🚀데이터베이스에 사용자가 있는지 확인하는 함수🚀
👉 get_user_model()
🚀사용자가 보내온 데이터 저장하기🚀
👉 해당 모델명.objects.create_user(모델의 데이터=사용자입력 데이터) ex)username=username
🚀사용자가 입력한 정보가 데이터베이스에 있는 정보와 일치한지 확인하는 함수🚀
👉 auth.authenticate(request, db정보=입력정보) - 🔥auth 임포트 필요!!🔥
🚀사용자가 로그인 상태인지 확인하는 함수🚀
👉 user.is_authenticated
🚀사용자가 로그인 되어있는지 확인하는 함수🚀
👉 request.user.is_authenticated
🚀로그인 되어있는 상태에서만 실행할 수 있는 함수🚀
👉 @login_required / from.django.contrib.auth.decorators import
🔥 login_required 임포트 하기!
🚀사용자 로그인 시키는 함수🚀
👉 auth.login(request, 위 사용자의 정보를 담은 변수)
🚀사용자 로그아웃🚀
👉auth.logout(request)