Python(1) - Django 설치
Python 관련 포스팅
- Python(1) - Django 설치
- Python(2) - MySQL 연결
- Python(3) - PostgreSQL 연결
- Python(4) - Query 만들기
- Python(5) - Django 가상 환경과 settings.py
1. Django 설치
$ python -m pip install Django
입력
설치 끝나면, django-admin
명령을 쓸 수 있음
→ $ django-admin
입력시 사용 가능한 서브 명령이 출력됨
2. Project 시작
2-1. project 생성
$ django-admin startproject [project 이름]
→ 현재 디렉터리에 project파일이 생성되고 그 안에 같은 이름의 project파일이 생김
또는,
$ django-admin startproject [project 이름] .
→ 현재 디렉터리에 project파일이 생성됨
2-2. project 파일 구성
myproject
폴더myproject/ manage.py myproject/ __init__.py asgi.py settings.py urls.py wsgi.py
urls.py
파일
→ 사용자가 접속하는 path에 따라 그 요청 처리를 지정(routing)
3. Django 실행
3-1. manage.py를 이용
$ python manage.py
입력시 사용 가능한 서브 명령이 출력됨
(※ 반드시 현재의 디렉터리가 project폴더인지 확인하기!)
$ python manage.py runserver
입력
→ 8000번 포트에서 서버가 성공적으로 열림
(※ python 개발 서버는 기본적으로 8000번 포트에서 리스닝)
3-2. 서버를 끄고 싶다면,
ctrl + c
입력
3-3. 포트 번호를 바꾸고 싶다면,
$ python manage.py runserver [바꿀 포트 번호]
를 입력
4. Application 설치
4-1. django-admin startapp [app 이름]
4-2. app 파일 구성
myapp
폴더myapp/ migrations/ __init__.py __init__.py admin.py apps.py models.py tests.py views.py
5. Routing
5-1. [project]/urls.py
설정
→ 큰 틀의 라우팅은 [project]/urls.py
에서 지정
myproject/urls.py
from django.urls import include, path urlpatterns = [ path('', include('myapp.urls')) ]
→
urlpatterns
정의(routing 관련 정보를 기록)
→path()
를 이용해 url을 넣어줌
path('접속 경로/', include('연결할 app.urls'))
→include()
: import 필요
→ user 접속시 myapp.urls
로 연결
5-2. [app]/urls.py
생성 및 설정
myapp/urls.py
from django.urls import include, path urlpatterns = [ path(''), path('create/'), path('read/1/') ]
→ user가 각 경로로 접속했을 때,
views.py
로 전달
→views.py
: client로 정보를 전달할 함수 작성(index, create, read)myapp/views.py
from django.http import HttpResponse from django.shortcuts import render # Create your views here. def index(request): return HttpResponse('Welcome!') def create(request): return HttpResponse('Create!') def read(request): return HttpResponse('Read!')
5-3. [app]/urls.py
수정
→ 사용자가 기본 포트로 접속 시, myapp/views.py
의 index 함수를 실행하도록 수정
→ views.index
import
myapp/urls.py
from django.urls import path from myapp import views urlpatterns = [ path('', views.index), path('create/', view.create), path('read/1/', view.read) ]
cf.)
path('read/1/', view.read)
에서 1이 바뀔 수 있는 숫자라면,<>
를 이용해 작성myapp/urls.py
path('read/<id>/', views.read)
→
views.py
의 read()가 해당 인자(id)를 받아서 처리myapp/views.py
def read(request, id): return HttpResponse('Read!'+id)
<routing 정리>
- user가
read/1
경로로 접속시 myproject/urls.py
로 감urlpatterns = [ path('', include('myapp.urls')) ]
myapp/urls.py
로 위임path('read/<id>/', views.read)
위 코드에 걸림
myapp/views.py
로 위임def read(request, id): return HttpResponse('Read!'+id)
read() 함수
실행- client에 반환 값 전송