2020년 글 백업 ㅎㅎ 장고 이후로 한~번도 안 써봄
하 내가 백엔드를 했어야했는데~
Django는 MVC 가 아니라 MTV
이번에 내가 한 건 db가 필요 없어서 model은 없고 template이랑 view만 썼다
view가 spring의 controller 같은 느낌
[home.html]
<body>
<div id = 'search'>
{% csrf_token %}
<input type="text" id="msg"/>
<input type="submit"/>
</div>
<script>
function sendData(){
var symbol = $('#msg').val();
$.ajax({
url : 'app',
dataType : 'json',
data : {'msg' : msg},
type : 'POST',
success : function(res){
...
}
});
}
</script>
</body>
비동기 통신으로 element 갖다 붙히려고 jQuery 씀
[view.py]
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.template import loader
import json
@csrf_exempt
def main(request):
if request.method == 'GET':
template = loader.get_template('home.html')
context = {'title': 'test'}
return HttpResponse(template.render(context, request))
if request.method == 'POST':
msg = request.POST['msg']
...
context = {'result': msg}
return HttpResponse(json.dumps(context), "application/json")
spring에서는 같은 주소에 대해 @GetMapping, @PostMapping 해서 다 따로 분리 했는데
장고는 걍 한번에 받아서 if 문을 쓴다..ㅇ0ㅇ!
그리고 장고는 어노테이션을 데코레이션 이라 부르더군
장고 할줄 아는 사람한테 이렇게 하면 rest냐니까 데코레이션 붙혀서 하라고 피드백이 왔다
[urls.py]
-----프로젝트 ----
| 어플리케이션 1 |
| 어플리케이션 2 |
-------------------
# 프로젝트 urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('pro/',include('testApp.urls')),
]
# 어플리케이션 urls.py
from django.urls import path
from . import views
app_name = 'testApp'
urlpatterns = [
path('app/', views.main, name='main'),
]
장고 되게 신기했던 것
urls매핑을 따로 파일 파서 한다
프로젝트 url/어플리케이션 url 이런식으로 매핑 됨 -> ../pro/app/
여기 또한 아주 헷갈리는 부분이었다
urls.py 에 뭘 적으라는데 urls.py가 2갠데 어디에 적어야하는지 너무 헷갈리는 것이다
암튼 시행착오와 구글링을 통해 알아낸 결과
프로젝트 urls.py에 어플리케이션을 등록해주면 됨
그리고 어플리케이션 urls.py에 함수들을 등록하면 됨
어플리케이션 urls.py에는 함수명을 적는데 이게 또 문화컬쳐쇼크충격
스프링 api 쓸 적에는 함수명은 아무데도 쓰이지 않았단 말야
내가 사용해야하는 api가 파이썬으로만 잘 돼있어서 장고를 쓰게 되었다
장고.. 아직 갈 길이 많이 남았지만 (앞으로 또 할런지는 모르겠지만)
유익하고 헷갈리고 어려운 시간이었다 ^__^
'Web' 카테고리의 다른 글
[Backend] Node.js + Express MVC 기초 세팅 (1) | 2024.01.02 |
---|---|
[Frontend] JS/TS 체인/루프 구현 (0) | 2023.11.06 |
[Frontend] axios/fetch headers utf8 한글 오류 (0) | 2023.10.13 |
[Backend] AWS ec2 서버 시간 설정 (0) | 2023.10.12 |
[Backend] node.js + next.js API Routes 기초 (0) | 2023.10.11 |