본문 바로가기

About coding/Today I learned

2023년 04월 05일 TIL [#Django 입문_3]

와~ 오늘은 식목일

본캐였으면 마당에 이것 저것 심느라 바빴을텐데

올 해 가을부턴 진짜 재밌게 살아야지.


오늘의 학습 계획

_Django 스파르타 강의 2배속 1회독

_개인과제 '무신사 재고관리시스템' 만들기 시작 - 로그인/회원가입/로그아웃 까지 해보자

 

 


오늘의 배움

1.Pycharm에서의 Django 프로젝트 기초 세팅

 아우, 원래 vs코드 썼었는데 오늘 동기 친구들한테 django 사용할 때는 pycharm이 더 좋다는 얘기를 들었다. 진짠가 해서 찾아보니 pycharm은 아예 장고를 위한 모드가 있어서 그걸 사용하면 기본세팅도 저절로 되고, 나중에 이상한 오류도 잘 안 난다고 함. 어떤 사람은 vs코드로 장고 하다가 한방에 모든 걸 날렸다는(?) 괴담도 있고.

 그래서 오늘 파이참으로 이사를 했다. 결과는 대만족! 왜냐하면 시작할 때 자동으로 깔아 주는 게 많고 컨벤션도 장고에 맞게 해줘서 두려울 게 없다. 장고도 저절로 깔아줘~ 가상환경 세팅도 저절로 해줘~ 프로젝트 폴더도 시작하자마자 저절로 생성돼~ 아주 좋구만 ㅎㅎ 아무튼 그래서 생활코딩과 VS코드로 첫 맛을 본 나는 오늘로써 파이참으로 갈아탄다.

 

아래는 본격적인 파이참 장고 세팅법

 

먼저, 파이참 키고, 뉴프로젝트 누른다. 창이 켜지면,

왼쪽 카테고리란 Django 모드 선택, 우측 Location 맨 마지막 부분 드래그 해 놓은 곳이 생성될 프로젝트이름 이다. 이 두 가지만 설정해주면 됨.

다 하고 우측 하단 Create 버튼 클릭.

기다리면 된다.

가상환경 설정하고, 장고 설치하고 여러가지가 저절로 준비되고 있어서 로딩이 좀 오래 걸린다.

 

다 하고 나면 짠

아까 경로 맨 마지막에 입력했던 이름 대로 새로운 Django project 폴더가 생성되었고,

그 내용물들도 다 갖추어진 채로 저절로 생긴다.

왼쪽 카테고리 안의 아이들을 살펴보자면,

모든 것을 담는 MusinsaProjectSolo 폴더 아래에

동일한 MusinsaProjectSolo 이름 폴더가 하나 더 있는데, 이게 메인이 되는 project의 기본앱이다. 

내용물로 __init__py, asgi.py, settings.py(전체의환경설정담당), urls.py(사용자가들고들어온path교통정리), wsgi.py가 들어있다.

 

밑에 templates 파일은 앞으로 html 템플릿을 만들면 넣어 둘 자리이고.

그 밑에는 가상환경인 venv 폴더가 있다.

그리고 마지막으로 모든 파일들을 세팅값으로 실행해주는  manage.py

 

 

아직 views.py와 별도의 app은 생성되지 않은 상태이다. 직접 만들어야 한다.

 

 

먼저 views.py를 만들려면 카테고리에서 프로젝트단위인 MusinsaProjectSolo를 우측 클릭하고

> New > Python File > 파일이름 views.py 로 설정 **이때 파일이름이 views처럼 간결해야 좋겠다. 함수 부를 때 앞으로 계속 코드로 쳐야 하기 때문. 다 만들고 나면 상단에서 뭐 좀 꼭 기본적으로 임포트 해둬야 인지상정.

#views.py
from django import HttpResponse #밑에서 함수 쓸 때 return HttpResponse("Hello,world")식으로 연결 점검용 화면 띄울 때 씀
from django.shortcuts import render #밑에서 함수 쓸 때 return render(request, <렌더할html템플릿이름>)식으로 템플릿 불러오려고 씀

그리고 어떤 project나 app에 views를 만들었으면 urls.py에도 들어가서 꼭 뷰스를 임포트 해줘야 한다.

그래야 urlpatterns 에서 views.<함수이름>식으로 views.py에 있는 함수 건드릴 수 있다.

# urls.py
from django.contrib import admin #기본
from django.urls import path #기본
from . import views #이걸써줘야함. 여기서 from . 이란 현재 내가 있는 경로를 뜻함. 즉, 현재 내가 있는 디렉토리 내의 views를 참고할게! 라는 뜻.

 

 

그리고 별도의 app을 만들려면 파이참화면 최하단 터미널 버튼을 클릭해서 터미널 입력창을 열고 >

> django-admin start-app <앱이름> 하면 된다.

이 때 앱을 구분해서 생성하는 기준은, 내 웹사이트에 대해 본질적으로 고찰한 뒤, 기능적인 부분에서 크게 나누어서 생각해야한다. 가령, SNS 서비스라면 유저관리에 대한 부분과, 댓글에 대한 부분으로 나눈다.

무신사재고관리 서비스라면, 마찬가지로 (유저관리 / 물건관리 / 상품업로드) 이렇게 세 파트로 분류할 수 있겠다.

 

이제 별도의 앱을 만들었으면, 장고에게 만들었다고 알려줘야한다.

#기본생성된프로젝트앱의 settings 파일에서
#스크롤을 내리며 아래와 같은 부분을 찾는다.

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 여기에 내가 만든 앱을 새로 추가. 코드는 밑에처럼 엄청 간단하다.
    # '앱이름A',
    # '앱이름B',
]

요러면 별도의 앱생성하기 끝!

 

이렇게 되면 Django프로젝트를 위한 기초세팅도 모두 끝나게 된다.

나머지는 프로젝트를 하면서 필요에 따라 구체적으로 만들어나가면 됨.

 

 

2.장고 데이터베이스 연결과 ORM

django를 설치해두면 기본적으로 sqlite3가 깔려있다. 연결도 되어 있는데, Pycharm에서는 파이참 화면 하나에서 sql데이터까지 바로바로 조회할 수 있는 강력한 기능을 제공한다. 그걸 활성화 하는 방법을 여기에 쓴다.

파이참 화면 가장 우측에 database 클릭
튀어나온 토글에서 플러스 버튼
세번째 Data Source from Path

왜냐면 우리 데이터들은 사용자의 입력값들이 path를 타고 돌아다니면서 생성되니까.

 

어떤파일 열 거냐고 경로 물음. db.sqlite3 찾아서 선택
SQLite로 Data Source 선택하고 OK!
요로케 나오면 인제 드라이버만 Download 하면 된다.

그렇게 하고 테스트 커넥션 한 번 눌러보면

연결 잘 되었고 Apply 눌러주고 OK 눌러주면 끝!

 

그러면 이제 여기 오른쪽 부분에 우리가 새로운 데이터 생성할 때 마다 테이블이 생성되어 나타난다.


작은 질문들과 해결:

Q. Django 전용 에디터가 pycharm이라서 pycharm이 좋다고 하길래 vs코드에서 갈아타기로함. 근데 설치가 안되는거...

     설치프로그램 확장자명이 .dmg로 되어 있길래, 데미지를 입은건가... 하면서 구글에 dmg 검색...

 > 맥 전용 설치프로그램들이 확장자명 .dmg란다... ㅋㅋㅋㅋㅋㅋ dk.... 윈도우용.exe 파일 받고 끝.

 

Q. pycharm 첨에 설치할 때 맨 위에랑 맨 아래 .py 체크하면 된다고 함.

> 알려주신 진규님께 감사

 

Q. range(1,11)을 프린트 하려면 어떻게 해야하나?

> 그냥 print(range(1,11)) 하면 응답이 range(1,11) 띡. 이렇게 나온다. 리스트() 함수로 레인지를 한 번 변화시켜줘야한다.

   print(list(range(1,11))) 이렇게 해줘야 됨. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


복습용 키워드 메모장:

#Django가 일하는 방식. MVT패턴 #settings.py #urls.py #ORM:Object Relational Mapping