D is silent.

be1le·2022년 1월 24일

django

목록 보기
1/1

이번 포스팅은 장고의 전체적인 작업 flow 에 대하여 다뤄보려 한다!

1.가상환경 설정

1.장고 프로젝트를 진행할 파일하나를 만든다.

2.vs로 해당 폴더를 열어준다.

3.해당 폴더에서 터미널을 실행해 준다.

4.python - m venv djangovenv(가상환경 폴더명)명령어로 해당 폴더에 가상환경을 설치한다.

5.이렇게 폴더내에 내가설정한 이름의 디렉터리가 들어오면 성공이다.

6.f1을눌러서 Select Interpreter를 클릭후 내가 설정한 가상환경 폴더명을 찾는다.

7.다시터미널을 실행시켜본다.


이렇게 앞에 내가설정한 가상환경 폴더명이 나온다면 성공! 앞으로 어떠한 명령어를 치더라도 꼭 앞을 확인하여 내가 지정한 가상환경 폴더내에 위치해있는지 확인한다.

8.장고를 설치해준다!
Python -m venv djangovenv

9.가상환경만 설치가 끝났으므로 우리가 직접 프로젝트를 진행할 프로젝트 파일을 만들어준다.
django-admin startproject 프로젝트명

10,경로는 쉽게 생각해서 우리가 처음 만들었던 디렉터리인 djangovenv와 동일선상에 프로젝트가 있으면된다!

Work flow

1.프로젝트 경로 이글에 (pracforme) 로이동후 문제없이 서버를 잘띄우는지 확인해본다.
python manage.py runserver!

이렇게 나오면 모든 설정이 잘 되었다는 것을 알 수 있다! 잘읽어보면 control +c를 누르면 우리가 서버를 끌수있다는 (파이참으로 치면 빨간네모)것을 알수 있다!

2.이제 기본적으로 사용되는 tweet과 user 앱을 사용할 것이다. 장고에서 앱이라 함은 경로로 이해하면 편하다.

$ django-admin startapp user

$ django-admin startapp tweet

이렇게 프로젝트위치와 같은 선상에 있게 되는 거라고 생각하면 편하다! vs코드로 실행시 db.sqlite3을 이렇게 앱들과 동일한 위치로 끄집어내 주는 것도 잊으면 안되겠다!

3.하지만 장고와도 우리는 개발자 정신을 공유할 필요가 있다. 우리는 서로의 아는것을 공유하는 멋진 문화를 장고와도 공유해볼 생각이다. Settings.py에들어가 우리가 아는 것을 적어주자 .

내리다보면 installed_apps 파트를 찾을수 있는데 최하단에 우리가 방금 생성한 tweet app과 user app을 적어준다! ,콤마를 잊으면 안된다!

4.데이터베이스는 파이참에서는 클릭 두번이면 뚝딱이지만! Vs 코드는 sqlite3 설치후 파일을 열어주면 된다.

사용하다 보니 큰불편함을 못느끼겠다. (뭔가더 프로그래머툴 같기도…)

5.우선우리가 models.py를 수정하면 무조건 우리는 알려주어야한다고 생각하면 된다.

python manage.py makemigrations

python manage.py migrate

이렇게 쿨하게 ...ok하면 문제없이 여기까지 왔다고 생각하면 된다!

6.admin 기능
우선 일반유저는 접근할수 있는 페이지가 아니기에 특별한 계정을 생성해 줄거고 그걸 우리는

python manage.py createsuperuser

이렇게 터미널에서 실행하여 만들어 줄 것이다!

생성후 http://127.0.0.1:8000/admin

이주소로 들어가면

이런 멋진 어드민 페이지를 만날수 있다.

7.본인의 user app에 user/admin.py를 들어가

이렇게 작성해주면


admin 페이지에도 우리의 모델이 등록된다.

8.같은 서순으로 우리는 모든앱들을 어드민 화면에 추가할수 있다.

tweet의 admin.py를 수정하면 이렇게 admin페이지와 연결된다.

이건 작성자가 궁금해서 찾아본 것인데 render는 탬플릿을 띠우고 redirect는 해당 경로로 이동을 하는 엄연한 차이가 있다는 것을 알아 두고 유기적으로 앱들을 연결 시키면 훨씬 이해가 편하다.

9.이제 사이트에 필요한 html과 앱들내부에 urls의 파일들을 프로젝트내부에있는 urls의 파일과 유기적으로 연결시켜준다.
나의 보잘것 없는 팁을 공유하자면,이런 flow로 진행한다.

1.연결할 app 내부의 urls.py를 생성

2.프로젝트 내부의 urls.py를 해당 app의 urls.py와 연결

3.해당app에 view.py로 이동하여 무엇을 보여줄지 작성.

4.작성한 view.py를 해당 app 안에 urls.py와 다시연결

5.짜잔

이렇게 써보면 정말 복잡하고 어지럽지만 여러번 반복하면 머리보다 손이 기억하니 너무 걱정하지 않았으면 좋겠다 :)

10.이제는 기능을 추가할 차례이다.
우선 GET과 POST에 대한 개념이 상당히 중요한데. 이전flask를 공부하며 찾아봤던 자료를 첨부 해보겠다.

너무 어렵다면 CRUD중 GET은보통r 기능만 담당하고 POST는 나머지를 책임진다 생각하면 쉽다. 물론 어떻게 쓰이냐에 따라 다양하게 활용 가능하다. 우선은 이정도만 알고 있으면 충분하다!

11.기능을 추가할 app에 작성이 끝났다면 경로설정 까지 마무리 해준다.


이런식으로 함수 최하단 혹은 중간에 redirect로 경로를 설정해 준다면 사용자를 해당 경로로 랜딩 시킨다.

이후 기능 추가하는 작업들은 동일한 flow로 진행된다 생각하면 된다.

총정리!

1.어떠한 app 에서
2.어떠한 기능을
3.어떤 함수로
이렇게 3개만 다르고 같은 큰 틀에서 생성되고, 지워진다 생각하면 된다. 그리고 이게 장고 프로그래밍의 전부일 뿐이다. 이3개가 같은 장고로도 수백만 개의 다른 사이트가 나오게 하는 것일 뿐이다. 여기까지 어느정도 이해하며 읽어 내려왔다면 이제는 그 수백만 개의 사이트중 하나는 우리가 만든것이 될 날까지 얼마 남지 않았다 생각한다. 물론 독자가 만든 사이트는 이 세상에 단 하나 뿐인 사이트 겠지만! :)

profile
그저 그런 개발자가 되지 않겠습니다.

1개의 댓글

comment-user-thumbnail
2022년 1월 24일

전반적인 흐름을 보기 좋게 정리하셨네요! 굿구웃

답글 달기