프레임워크/Django

django (장고) 시작1

익명의 신디 2020. 3. 26. 09:36

django

파이썬 웹 프레임워크 (오픈소스 기반)

공식문서[영어]

https://www.djangoproject.com/

공식문서[한글]

https://docs.djangoproject.com/ko/3.0/intro/

django = python web framework

(프렌차이즈로 창업하기)

웹페이지 개발하는 과정에서 겪는 어려움을 줄이자 

 

 

경량형 많이 쓰는 프레임워크

 


개발환경 ㅣ 클라우드IDE

CS50 IDE 로 장고쓰기

CS50 IDE 서버생성

클라우드 나인 + 깃허브로 로그인

http://ide.cs50.io/

- 우측 상단의 고양이 Share 를 눌러서 => [공유] 하고자하는 깃허브 유저네임 검색해서 추가가능

 

리눅스 기본 명령어

$ cd

change directory

디렉토리 변경(이동)

cd .  # 현재 디렉토리
cd 폴더명 # 폴더 속으로 들어가기
cd . .  # 한단계 상위 디렉토리로 올라가기
cd  # ~/ 최상단으로 올라가기

cd 폴더이름쓰다... tab 하면 폴더이름 자동완성

$ ls

list

목록

~/django_intro $ ls
db.sqlite3  django_intro/  manage.py*
$ mkdir

make directory

디렉토리 만들기

# 하위 폴더 만들기
mkdir 폴더명 
$ touch

 

# 하위 파일 만들기
touch 파일명.py

$ python lotto.py 파이썬아 로또파일 실행시켜줘

 

설치 및 django 프로젝트 시작

명령어 기능 자세히
$ pip install django==2.1.15 장고 설치 $ pip list 를 통해 어떤게 설치되어있는지 확인 가능
$ django-admin startproject {프로젝트명}
$ django-admin startproject django_intro
프로젝트 생성  레포리지트 {프로젝트명} 폴더/ 속에 동일이름의 폴더/
$ django-admin startproject myproject .

$ django-admin startproject myproject {경로지정가능}
-옵션

. 으로 하면 프로젝트명의 폴더 이름 하나만 생성됨

경로지정도 가능

~/ $ cd django_intro/



서버 실행

django_intro 폴더의 settings.py 파일 수정

# 28번째 라인 [] 안에 '*' 넣기
ALLOWED_HOSTS = ['*']

 

# 108번째 en=>ko 한글로 바꾸기

~/ $ cd django_intro/$ ls   반드시 서버 실행시
명령어가 실행되는 디렉토리를 확인할 것
manage.py* 보기

~/django_intro/ $ python manage.py runserver 8080

  실행된 서버는 우측의 영역의 url을 클릭
8080 포트번호

...

... ... 이후에 할 것
~/django_intro/ $ python manage.py startapp {app이름지정}  앱 생성(다중) 프로젝트 이름의 폴더의 views.py는 없어지고 여기는 views.py 가 생성됨 .... 

장고 프로젝트 생성을 파악하는 화면

  • 서버 종료는 터미널에서 ctrl + c 함께 입력한다.

  • URL 이 없으면 서버실행 시, 로켓만 발사됩니다.

  • OPPS 는 서버가 돌아가지 않을 때 발생, 새로고침 또는 서버다시실행

  • 404 not found : base의 url 에서 보여줄 html 이 없으면, 페이지 없다고 뜸 (경로다시보기)

 


MTV패턴 - 요청과 응답

클라이언트 -- 요청--> 서버

클라이언트<--응답 -- 서버

 MDN웹docs_Django 웹 프레임워크 (파이썬)

https://developer.mozilla.org/ko/docs/Learn/Server-side/Django

MTV_django    MVC패턴 아키텍쳐와 유사
Model 데이터관리 Model
Template 인터페이스_화면 View
View 중간관리_상호작용 Controller

 

MDN웹docs_ Django

  • URLs: 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽습니다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 view로 보내주기 위해 사용됩니다. 또한 URL mapper는 URL에 나타나는 특정한 문자열이나 숫자의 패턴을 일치시켜 데이터로서 뷰 함수에 전달할 수 있습니다.
  • View: view는 HTTP 요청을 수신하고 HTTP 응답을 반환하는 요청 처리 함수입니다. View는 Model을 통해 요청을 충족시키는 데 필요한 데이터에 접근합니다. 그리고 탬플릿에게 응답의 서식 설정을 맡깁니다.
  • Models: Model은 application의 데이터 구조를 정의하고 데이터베이스의 기록을 관리(추가, 수정, 삭제)하고 query하는 방법을 제공하는 파이썬 객체입니다.. => CRUD(create,read,update,delete)
  • Templates: 탬플릿은 파일의 구조나 레이아웃을 정의하고(예: HTML 페이지), 실제 내용을 보여주는 데 사용되는 플레이스홀더를 가진 텍스트 파일입니다. view는 HTML 탬플릿을 이용하여 동적으로 HTML 페이지를 만들고 model에서 가져온 데이터로 채웁니다. 탬플릿으로 모든 파일의 구조를 정의할 수 있습니다.
    (탬플릿이 꼭 HTML 타입일 필요는 없다)

 

작성순서 -( U->V->T )

  0 settings.py
  1 urls.py  경로설정, url =~~/-- 정의하기
  2 views.py 실행할 함수선언
  3 HTMl(templates/--.html) 실행될 페이지, 반환할 html파일만들기