Views

Woo Hwukjun·2020년 12월 8일
0
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)
profile
미래 개발자

0개의 댓글

관련 채용 정보