[Django] 개발 Flow & 개발 환경 세팅

신현식·2023년 4월 26일
1

Django

목록 보기
1/1
post-thumbnail

Django 초기 개발 Flow

1 실습 폴더 이동(없으면 생성)

2 가상환경 모드로 진입 --> 프로젝트 생성

  • django-admin startproject (프로젝트명)

3 기본 테이블 생성(기본 앱들 설치 --> 슈퍼 관리자 아이디 생성을 위해서,

  • py manage.py migrate
  • 프로젝트 루트 폴더에 -> db.sqlite3 -> 데이터베이스 파일 생성

4 슈퍼유저 생성

  • py manage.py createsuperuser -> 계정명/이메일/비밀번호 설정(admin, admin@localhost.com, ***)
  • 기본 테이블 생성이 선행, 만약 안되면 기본 테이블 생성했는지 체크 후 다시 슈퍼유저 생성을 실시한다.
  • 접속하는 방법: localhost:8000/admin

5 서버 구동 후 관리자모드에 접속

  • py manage.py runserver (기본 8000번 포트로 서버 구동)
  • py manage.py runserver 9000 (포트 변경)
  • 서버 종료: ctrl+c
  • 장고 개발 서버: 경량의 웹서버, 주로 개발 목적 및 테스트 용도로 사용되는 서버를 의미

6 App 생성 및 추가

  • py manage.py startapp info

  • 생성 파일: models.py, views.py 등

  • app 안에 urls.py 파일을 별도로 생성해줘야함

  • 최상위 루트 폴더에 존재하는 환경설정 파일

    • settings.py (프로젝트 내 환경구성 등 여러 설정 정보를 담고 있음)
    • urls.py (URL 패턴 등 패스관련 여러 정보를 담고 있음, 이는 자동으로 생성됨)
  • 최상위 폴더 -> urls.py -> urlpattens -> app path 추가

    • include() 함수: 다른 URLConf 패스들을 참조할 수 있도록 해주는 함수, 앱 구동 및 연결시 중요한 역할을 함
path('info/', include('info.urls')),
path('admin/', admin.site.urls),

7 템플릿 폴더 사용
프로젝트 루트 폴데어 templates 폴더를 만들어서 사용 -> 프로젝트의 settings.py(root) -> info.apps.InfoConfig 템플릿 경로 추가하여 사용
생성한 앱(App)쪽 바로 하위에서 -> templates 폴더를 만들어서 사용(App별로 템플릿 사용이 가능) -> 템플릿 파일 생성(App이름/templates/템플라파일.html 생성)

8 데이터베이스 연동

  • 템플릿 파일 작성(경로 잘 확인하기 C:\Users\shin\git\django-server\myadminpage\info\templatesinfo_list.html)
  • 뷰 페이지 작성(view.py)
  • 테이블 생성을 위한 모델 정의(models.py)

장고 개발환경 세팅

장고(django)를 사용하기 위해서는 파이썬(python)을 설치해야한다. 아래에 링크를 통해 자신의 OS에 맞는 파이썬(python)를 다운로드 받은 후 설치합니다.


pip install virtualenv pylint autopep8

mkdir django-server
cd django-server

# 가상환경 생성
virtualenv venv
or
python -m venv myvenv

-------------------------------------

# 가상머신 활성화
source myvenv/Scripts/activate

# 장고 설치
pip install django

# 설치가 완료되었다면 아래에 명령어로 장고(django)가 잘 설치되었는지 확인
django-admin --version


# 설치된 개발 환경을 파일로 저장
pip freeze > requirements.txt


# 가상 환경(Virtual Environment) 종료
deactivate

프로젝트 생성

# 장고(django) 프로젝트를 생성
django-admin startproject myadminpage

장고(django) 명령어로 프로젝트를 생성하면 아래와 같이 폴더가 생성되는 것을 확인할 수 있다.

|-- myadminpage
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py
|-- manage.py
  • myadminpage/settings.py: 전반적인 설정을 가지고 있는 파일
  • myadminpage/urls.py: 프로젝트의 url을 관리하는 파일
  • myadminpage/wsgi.py: 웹서버(apache, nginx등)과 연동하기 위한 파일
  • manage.py: 프로젝트를 관리. 예를 들어, DB의 migration 생성 및 실행, 로컬에서 다른 설치없이 웹 서버를 기동 등

Database가 잘 연동되었지 확인하기 위해 장고(django)가 기본으로 제공하는 관리화면에 필요한 기본 테이블을 아래에 명령어를 통해 생성한다.
dbshell모드로 들어가서 기본적으로 생성된 테이블을 확인할 수 있다

# 생성
py manage.py migrate

# sqlite 들어가기
py manage.py dbshell
# 기본 테이블 확인
.table

💡 dbshell 설치

SQLite 설치
dbshell이 실행이 되지 않는다면 위 링크에서 파일을 다운받아 압축을 해제한 이후 내부에 있는 sqlite3.exe 파일을 프로젝트의 루트 디렉터리에 복사해준다. 이후 명령을 실행하면 sqlite가 잘 실행되는 것을 확인 할 수 있다.

💡 파이썬 장고 에러 해결 - ModuleNotFoundError: No module named 'django'

가상환경에서의 장고 서버를 켜려고 했는데, 어제까지만 해도 잘 동작하던 게 갑자기 아래와 같은 에러를 뱉어내며 실행되지 않았다.

ModuleNotFoundError: No module named 'django'

...
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
  • pip 문제인 것 같았다. pip을 재설치하고 requirements를 깔아주니 장고도 정상작동하였다. 윈도우에서는 pip upgrade 하려고 하면 삭제는 잘 되었는데 재설치가 제대로 안되곤 하는 문제가 있었는데 위 명령어로는 그런 것 없이 깔끔하게 잘 설치되었다.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

이후 가상머신에 들어가 pip list로 Django가 설치되어있는지 보고 설치되어있지 않으면 설치해준다.

profile
전공 소개

0개의 댓글