import json #변환시켜준다. dictionary type이 바로 json으로 바꿀수있다. from django.views import View #모델이랑 같이 다 장고꺼 가지고와서 쓰려고 from django.http import JsonResponse from .models import User class AccountView(View): #get은 데이터를 주지않는다 달라고 요구만 받는다. def get(self,request): #자원을 읽어 올때 Url만 사용합니다. 서버한테 정보를 받아와라 users = User.objects.all() userlist =[] for element in users: userlist.append({ "user_name" : element.user_name, "phone_number" : element.phone_number, "email" : element.email, "password" : element.password, }) print(userlist) def post(self, request): #(받아 입력) 자원을 생성할때/ 데이터를 request의 바디에 담아서 client에 서버로 요청. data = json.loads(request.body) #데이터를 바디에 다 받아온다. #print(data) User.objects.create(user_name=data['user_name']) return JsonResponse({'message': 'SUCCESS'}, status = 200) #def put(self): 전체 업데이트 #def delete(self):
(projectname)urls.py
from django.urls import path, include
urlpatterns = [
path('user' include('user.urls')), #settings.py에 root url config라는 곳에 여기가 처음경로로되있다.(중간에있는 URLs는 /를 붙이면 안된다.
]
cp westagram/urls.py user/. #url를 복사해서 수정해준다.
include만 빼준다 그이유는 다른곳에서 가져올 필요가없기때문이다.(즉 app안에서 다 꺼낼수있다.
app에 들어가는 urls는 앞에다가 /를 붙인다.
from django.urls import path
from .views import AccountView
urlpatterns = [
path('/user', AccountView.as_view()), #as_view는 내장되있던 method
]
http -v POST 127.0.0.1:8000/user/userlist # 확인만 한다. 프린트가 되는지 확인하고 그다음에 출력이 나오면
#dictionary 형태면 에러가난다. dictionary형태로만 출력이가능하기때문이다.
print(userlist)를 return JsonResponse({'data': userlist}, status = 200)
def post(self, request): #받아 입력
data = json.loads(request.body) #데이터를 바디에 다 받아온다.
print(data)
http -v POST 127.0.0.1:8000/user/userlist username = hwukjunwoo
들어가긴한다.
def post(self, request): #받아 입력
data = json.loads(request.body) #데이터를 바디에 다 받아온다.
#print(data)
User.objects.create(user_name=data['user_name'])
return JsonResponse({'message': 'SUCCESS'}, status = 200)
http -v POST 127.0.0.1:8000/drinks menu = 'new' categry = 'cold' dr
ink = 'coffe'
- 클라이언트 요청 메세지.
from django.http import JsonResponse
from django.views import View
import json
from .models import Menu, Category, Drink
class SampleappView(View):
def post(self, request):
data = json.loads(request.body)
print(data)
menu = Menu.objects.create(
name=data['menu']
)
category=Category.objects.create(
name = data['category'],
menu = menu
)
Drink.objects.create(
name = data['drink']['name'],
menu = menu,
category = category
)
return JsonResponse({'message':'Success'},status=200)