티스토리 뷰

728x90

파라미터 읽기 

parameter: 웹에서 클라이언트가 서버에게 전송하는 데이터 

전송 방식

  • url 파라미터: url에 파라미터를 포함해서 전송하는 방식. 하나의 데이터를 가져오고자 할 때 기본키값을 데이터로 전송하는 형식에서 주로 이용. 
  • querystring: GET 방식 요청에서 URL 뒤에 ?를 추가하고 key=value&key=value 형식으로 전달하는 방식. 파라미터가 url에 노출되고 데이터의 길이에 제한이 있어서 비밀번호나 파일 등은 전달이 불가능하다. 
  • POST, PUT, DELETE: 데이터를 header에 숨겨서 전송

URL 파라미터 읽기

처리방법

urls.py 

path("url/<자료형:변수이름>", 요청 처리 함수)

요청 처리 함수를 만들 때 def 함수이름(request, 변수 이름)으로 만들면 url의 변수 값이 변수에 형 변환되서 대입된다. 

#예시 
#urls.py
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path("user/",admin.site.urls),
    path("article/<int:no>",views.url_req)
]


#views.py
def url_req(request, no):
  #페이지에 전달받은 no 출력
  return HttpResponse(str(no))

 

실행결과


GET이나 POST 방식으로 전달된 파라미터 읽기

views.py

# 기본 형식
def 함수명(request):
    request.GET["키"] ->value
    request.GET["키"] ->value
    ...

 

urls.py

path("url",요청처리 함수명)
#불러올 페이지의 url만 적고 파라미터는 작성하지 않는다.

 

예시

#views.py
def search(request):
  keyword = request.GET["query"]
  return HttpResponse(keyword)

#urls.py

 

# default value(기본 값) 설정
def search(request):
  #두 번쨰 인자가 기본값
  keyword = request.GET["query","default value"]
  return HttpResponse(keyword)

실행결과

 

 

 

 

데이터베이스 연결(MYSQL)

settings.py 

#django 기본 설정
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

 

mysql로 수정하는 경우 

mysqlclient 패키지를 설치(CMD창에 입력)

pip install mysqlclient

settings.py 수정

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "데이터베이스명",
        'USER':'접속할 계정',
        'PASSWORD':"비밀번호",
        'HOST':"데이터베이스접속위치",
        "PORT":"접속할 포트번호"
    }
}

 

수정 내용 반영(CMD 창에 입력)

python manage.py makemigrations
python manage.py migrate

 

예시

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "mysdb",
        'USER':'root',
        'PASSWORD':"1111",
        'HOST':"127.0.0.1",
        "PORT":"3306"
    }
}

연동 결과

 

 

728x90