python -m venv venv
F1 또는 Ctrl+Shift+P를 누르면 화면 상단에 창이 하나 생기는 데, 거기에 Python Select Interpreter를 입력
pip install django #장고 설치
pip install djangorestframework #DRF 설치
(호환성 등의 문제로 조금 더 위의 버전을 선호하는 편이다.
실제로 python 3.8에서는 f-string을 좀 더 사용하기 편하도록 문법이 개선이 되었다.
기존에는 변수명과 변수값을 콘솔에 출력해볼 때, f-string 안 에 변수를 2번 사용 / 지금은 1번 사용)
pip freeze > requirements.txt
pip install -r requirements.txt
django-admin startproject 프로젝트이름 .
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [ # 기본적인 view 접근 권한 지정
'rest_framework.permissions.AllowAny'
],
'DEFAULT_AUTHENTICATION_CLASSES': [ # session 혹은 token을 인증 할 클래스 설정
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication'
],
'DEFAULT_PARSER_CLASSES': [ # request.data 속성에 액세스 할 때 사용되는 파서 지정
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser'
]
}
이러면 레스트프레임워크 사용준비는 끝 , 가져다가 쓰면 됨.
파스칼,카멜,스네이크 등의 표기법이 있는데
python 에서 카멜은 안 쓴다고 한다. 파스칼이랑 스네이크만 쓴다고 한다
파이썬의 국룰이라고 한다.
카멜 케이스는
int mathScore;
public void getMathScore(int mathScore) {
return mathScore;
}
처음에는 소문자로 시작하며 2번째 단어부터는 첫글자가 대문자로 시작한다.
참고로 조합하는 단어는 보통 명사를 사용해야 하나, 메소드에서 첫번째 시작하는 단어는 동사로 시작하는 것을 권장한다고 한다. (select, get, put, search 등)
케밥 표기법 (Kebab case)이란 것도 있는데
'_'(언더바) 대신 '-'(하이폰) 을 쓰는 것이 특징이다.
많은 언어가 하이픈을 지원하지 않기 때문에 사용하는 예는 상당히 제한되어 주로 프로퍼티(properties)에 값을 설정한다던지, CSS에서 쓴다던지 혹은 HTML에서 일부 사용한다고 한다.
참고로 '-'(하이폰)을 쓰면 더블클릭시 하이폰 기준으로 나눠져서 전체 단어가 선택이 안 된다.
하지만 '_'(언더바)를 쓰면 더블클릭시 단어가 다 선택되서 나는 언더바를 선호하는 편이다.
간단하다. 장고에서 경로 설정하고 포스트맨에서 그 경로 url을 입력하면 뜰거다.
그런데!!! 입력을 했더니
postman loud Agent Error: Can not send requests to localhost. Select a different agent.
이런 에러가 뜨면서 포스트맨에서 어떤 응답도 못 받아오는 것이었다.
python manage.py runserver 8001로 하면서 다른 포트번호로 열고 접속해봐도 안 되는 것이었다. 내 브라우저에서는 실행되는데 포스트맨에서는 안 된다는 건 포스트맨에 리퀘스트를 못 받아오는 상황이라는 것!
그래서 검색해보니 포스트맨은 내 로컬 환경과 바로 연결이 안 되기때문에 포스트맨데스크탑?? 을 다운 받아야 한다는 것이었다. 그래서 다운 받으니 무사히 해결 완료!
https://www.postman.com/downloads/ 이다.
AI > urls.py
"""AI URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from AI import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.show_message_success),
]
AI > views.py
from django.http import JsonResponse
from django.views import View
# Function based view
def show_message_success(request):
data = {
"message": "successs!!!!!",
# "age": 20,
# "hobbies": ["Coding", "Art", "Gaming", "Cricket", "Piano"]
}
if request.method == 'GET':
return JsonResponse(data, status=200)
else:
return JsonResponse({'message': 'delete method!!'}, status=400)
해당 view는 FBV로 작성했으나 CBV를 배웠기 때문에 조금 더 갈무리 해보려한다.