[Django] Django 입문 - 개발세팅, 프로젝트 및 앱 생성

샤이니·2022년 4월 6일
0
post-thumbnail

web framework

프레임워크 : 웹 서비스를 쉽게 만들어주는 기계

  • 컴퓨터 프로그래밍에서, 소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다.
  • java, python 등의 프로그래밍 언어로 웹 개발을 할 수 있는데, 어차피 그 웹 개발 과정은 굉장히 정형화되어있어서 맨날 비슷한 과정, 설계, 기능, 원리로 흘러간다 (서버, 로그인, 인증 등등)
    • 설계 : 설계의 원칙을 디자인 패턴이라 한다.
    1. 데이터베이스와 상호작용 하는 부분
    2. 사용자의 눈에 보이는 부분
    3. 웹서비스 내부 동작 관리 부분 → MTV(or MVC 패턴)
  • 따라서 정형화되어있는 웹개발을 효율적으로 하기 위해 미리 만들어 놓은 웹 개발의 기능 단위, 설계 단위의 집합이다.

** 리액트는 라이브러리이다.

echo "리드미 내용" >> README.md

git init # 처음 연동시 최초 1회에만
git add . # 스테이징에 추가하기 '.' 은 추가/생성된 모든 파일을 add 하겠다는 의미. 변경된 아무파일이 없으면 오류뜸
git commit -m "커밋 메시지" 
git branch -M main # branch main으로 변경
git remote add origin 복사한 개인 repository url # 레포지토리 연동
git push -u origin main

//linux 기초 명령어
pwd # 현재 작업중인 디렉토리 출력
ls # 현재 디렉토리에 들어있는 전체 목록 출력
cd # 디렉토리 변경
rm # 파일이나 디렉토리 삭제
clear # 터미널 기록 지우기
...
  • master branch를 왜 main branch로 변경하는가?
    'Black Lives Matter' 운동에 발맞춰 주종(주인과 노예)관계를 뜻하는 'master', 'slave'를 다른 단어로 대체하기 위해서이다.

개발 환경 셋팅

  • 터미널 bash창으로 바꾸기!
    왜 git bash를 default 터미널로 삼아야 하는가?
    • Git bash가 리눅스 명령어 체계를 따르고 있기 때문!!
    • 대부분 절대 다수의 웹사이트나 서버용 프로그램을 호스팅하는 운영체제가 리눅스 환경에서 런칭, 배포, 관리됨. (윈도우도 있긴함)

가상환경

  • 독립적인 개발환경을 만들어주기 위해 사용하는 python 내장 기능

  • 만약 가상환경 없이 장고를 그냥 깔면 여러분 개인 노트북 전체에 장고가 영향을 미칠 것이다. 어떤 패키지를 삭제하거나 여러개의 장고프로젝트를 진행하거나 등등 여러 상황에서 서로 어떤 영향을 주는지 예측이 어렵다, 또한 번거롭다.

    • 이런일을 방지하기 위해 각각의 프로젝트에 독립적인 환경을 제공해주는 가상환경을 사용!
  • 쉽게 말해 각 프로젝트를 하나의 거대한 가상환경 통에 담아서 서로 영향을 줄 수 없게 함!

  • 방법 1

    python -m venv myvenv # myvenv라는 이름의 가상환경
    
    # 가상환경 실행하기
    source 가상환경이름/Scripts/activate #window 버전
    # 가상환경을 실행하면 명령어창 위에 가상환경 이름이 소괄호 안에 표시됨
    
    # 가상환경 끄기
    deactivate # 소괄호가 사라짐
    
    cd sns-project/
  • 방법 2

    python --version # python version 확인
    #python 버전이 3 이상일 경우 pip(python2 버전의 패키지 매니저)가 아닌 pip3로 설치해줘야함
    
    pip3 install pipenv # pip3를 사용해 pipenv라는 이름의 가상환경 설치
    pipenv shell # 위에서 생성한 pipenv 가상환경으로 들어가기
    pipenv --rm #가상환경 전체 삭제

    Django 프로젝트

  • 프로젝트 생성하기

pip3 install django #pip : 패키지를 관리하는 툴. 4가지 의존적인 패키지를 포함해서 Django를 설치한다.

pip freeze #pip를 이용해 어떤 패키지가 설치되어 있는지 확인 가능하다.

 django-admin startproject [프로젝트이름] .#현재 디렉토리에 프로젝트 이름의 프로젝트 파일이 생성된다.

**__init__.py ‘**이 init.py가 있는 sns-project가 패키지이다’를 알려주는 기능으로써 존재함.

**asgi.py** Asynchronous Server Gateway Interface의 약자. Web server, framework, application을 연결해주는 역할

**settings.py** 프로젝트의 환경 및 구성에 대한 설정이 있는 파일. 앱 생성 후 이곳에서 등록할 예정

**urls.py** user가 접근하는 웹사이트의 url과 유저가 보는 view의 연결을 지정해줌

**wsgi.py** Web Server Gateway Interface의 약자. 웹 서버와 Django간의 통신 역할을 함

**manage.py** 다양한 기능을 제공함. python manage.py [명령어] 형태로 사용가능

  1. 서버 켜기 python manage.py runserver

  2. Application 만들기 python manage.py startapp [앱이름]

  3. Database 초기화 및 변경사항 반영 python manage.py migrate

  4. 관리자 계정 만들기 python manage.py createsuperuser

  5. applicaion이란? 장고 프로젝트를 구성하는 작은 단위

    게시판 기능, 결제 기능, 장바구니 기능 등 처럼 독립적인 기능들을 각각의 어플리케이션으로 만들어서 하나의 django web site가 구성됨

    → setting.py에 등록을 해줘야함!

    등록할때 그냥 app이름 적는것 보다 apps.py에 가서 확인후 main.apps.[classname]등으로 등록하는게 더 안전함

Django 앱 생성하기

python manage.py startapp [앱이름`]

migrations 데이터베이스를 업데이트해주는 파일을 저장하는 폴더
__init__.py 빈파일
admin.py 관리자 사이트와 관련된 설정
model.py 모델에 대한 정보
test.py test case에 대한 정보
**views.py 앱에 대한 views를 관리하는 파일**

0개의 댓글