장고와 리액트를 연결하기 위한 순서는 다음과 같다. 1. 장고를 위한 proxy를 만들기2. djnago-cors-headers 설치3. corsheaders를 INSTALLED_APPS에 추가4. corsheaders.middleware.CorsMiddleware를 django.middleware.common.CommonMiddleware전에 추가5. CORS_ORIGIN_ALLOW_ALL = True를 base.py 맨 아래 추가6. 장고가 bundle을 static file로 로딩하게 해야 한다.7. 디렉토리 전체를 위한 views.py추가 proxyyarn build를 할 때마다 build디렉토러에 개발한 내용들이 압축될 것이다. 이걸 장고가 읽을 수 있도록 해야 한다. 리액트가 실행되고 있는 포..
Login in with Facebook페이스북으로 로그인 기능을 구현하기 위해서는 아래 코드를 installed_apps에 추가해 준다.'allauth.socialaccount.providers.facebook', 어드민 패널에 가 보면 Social Account가 생긴 것을 볼 수 있다. Socail Application에 들어가서 추가를 해 준다. 그 다음 user -> views.py, urls.py에 아래 코드를 추가해 준다. views.pyfrom allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter from rest_auth.registration.views import SocialLoginView class ..
login/logout/sign up Installation장고로 로그인 기능을 구현하기 위해서는 djnago-rest-auth라는 패키지를 설치해 줘야 한다.pip install django-rest-auth 그 다음 installed_apps에 아래의 코드를 추가해 준다.INSTALLED_APPS = ( ..., 'rest_framework', 'rest_framework.authtoken', ..., 'rest_auth' ) 그 다음 urls.py에 아래의 코드를 추가해 준다. urlpatterns = [ ..., url(r'^rest-auth/', include('rest_auth.urls')) ] 여기서 jwt토큰 url을 삭제해 준 후 위 url을 추가해 주자. urlpatterns = [ #..
JWTJWT가 무엇인지 설명하기 전에 authentication(인증)이 어떻게 이루어지는 지 설명하겠다. request 안의 이 유저는 어디서 오는 걸까? (request.user) F12를 눌러보면, 사진에 보이는 세션으로 장고에게 내가 누구인지 나타내는데 이것을 삭제하면 익명유저가 되기 때문에 url에 접속을 하려해도 Attribute가 없다고 나타날 것이다. 이는 config > settings > base에서 authentication 백엔드를 살펴보면, 2개의 백엔드를 쓰는데AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBacken..
The Request Object in Django우리 function에서 진행하는 http request는 브라우저가 우리에게 보내는 http request와는 다르다. 브라우저나 아이폰이 보내는 http request는 정상적인 요정이다. 여기서 진행하는 http request는 많은 과정을 거쳐 우리의 view function에 도달하게 된다. 아래의 코드가 그 예시다.class ListAllImages(APIView): def get(self, request, format=None): all_images = models.Image.objects.all() serializer = serializers.imageSerializer(all_images, many=True) return Response(..
Hidden Model Fields in Djangoforeign key의 뜻은 참고하고 있는 모델의 ID이다. 아래와 같은 모델의 경우에는 ID가 1이다. 그리고 ID 1의 소유자가 이미지 생성자인 것이다. class Image(TimeStampedModel): """ Image Model """ file = models.ImageField() location = models.CharField(max_length=140) caption = models.TextField() creator = models.ForeignKey(user_models.User, on_delete=models.PROTECT, null=True,) def __str__(self): return '{} - {}'.format(sel..
Creating the URLS and Testing the images serializersurl을 만들기 전에 시리얼라이즈에 대해 좀 더 설명해야 될 부분이 있다. DB에 있는 모든 이미지들을 시리얼라이즈 하려면, 이를 내가 이 오브젝트를 위해 생성한 시리얼라이저로 시리얼라이즈 해야한다. 만약 내가 이를 다른 댓글 시리얼라이저로 시리얼라이즈 하면, 에러가 발생한다.왜냐하면 다른 오브젝트를 위해 생성된 시리얼라이저이기 때문이다. URLurl은 regular expression, View, name이렇게 총3가지로 구성되어 있다. Regular expression정규식 표현은 우리가 텍스트를 매칭하고, 텍스트의 패턴을 만들 수 있는 방법이다. 예를 들어 보면 아래와 같다. regex=r'^~redirec..
Customizing the Django AdminString Representation위의 그림과 같이 화면에 출력이 되면 이미지가 누가 올리고 어떤 내용의 이미지인지 알 수 없다. 그래서 String representation을 사용해 간략하게 내용을 표시할려 한다. class Image(TimeStampedModel): """ Image Model """ file = models.ImageField() location = models.CharField(max_length=140) caption = models.TextField() creator = models.ForeignKey(user_models.User, on_delete=models.PROTECT, null=True,) def __str__..