참고) 서버개발자가 되는법 [3] - API만들기, 로그인부터 만들자
로그인 API 만들기
- 서버 requirements과 로컬 동기화
- login 앱 생성 후 migrate 오류
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
-> settings.py와 mysql password가 같지 않을 경우 생기는 오류
미해결 오류
더보기
$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
$ sudo vim /etc/mysql/my.conf
# /etc/mysql/my.conf
[client]
socket = /var/lib/mysql/mysql.sock
[mysql-server]
socket = /var/lib/mysql/mysql.sock

- login/views.py, login/urls.py, mysite/urls.py 수정
테스트로 POST 요청 404 오류

# login/views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import LoginUser
class RegistUser(APIView):
def post(self, request):
user_id = request.data.get('user_id', "")
user_pw = request.data.get('user_pw', "")
LoginUser.objects.create(user_id=user_id, user_pw=user_pw)
data = dict(
user_id=user_id,
user_pw=user_pw
)
return Response(data=data)
# login/urls.py
from django.urls import path
from . import views
urlpatterns = [
# ~/signup 호출하면 RegistUser 호출
path('signup', views.RegistUser.as_view(), name='signup'),
]
#클래스를 기반으로한 view의 경우에는 클래스명.as_view() 로 표현
# mysite/urls.py
from django.contrib import admin
from django.urls import path, include
from main import views as main_views
urlpatterns = [
path('', main_views.index, name="index"),
path('admin/', admin.site.urls),
path('login/', include('login.urls')),
]
참고) django 장고에서 배포한후 실개발환경에서 urls.py 수정후 라우팅적용반영안될때
uwsgi 서버 껐다 키는걸로 해결
$ git pull
#로컬에서 수정한 파일 받고
$ sudo service uwsgi restart
#서버 재시작해서 변경된 라우팅(urls.py 수정) 적용
비밀번호 검증 기능 추가
단방향 암호화 비밀번호 만들기
from django.contrib.auth.hashers import make_password
def post(self, request):
user_id = request.data.get('user_id', "")
user_pw = request.data.get('user_pw', "")
user_pw_crypted = make_password(user_pw)
LoginUser.objects.create(user_id=user_id, user_pw=user_pw_crypted)
data = dict(
user_id=user_id,
user_pw=user_pw_crypted
)
return Response(data=data)






카카오 로그인 기능 추가
참고) django에서 kakao 로그인 api 사용하기 +(allauth 사용)
'_공부하는 > python' 카테고리의 다른 글
| Django 프로젝트 개발환경 준비 (0) | 2022.01.03 |
|---|---|
| docker로 mysql, redis 실행 (0) | 2021.12.17 |
| (AWS) Django 프로젝트 AWS로 배포하기 -3 (0) | 2021.12.12 |
| (AWS) Django 프로젝트 AWS로 배포하기 -2 (0) | 2021.12.11 |
| (AWS) Django 프로젝트 AWS로 배포하기 -1 (0) | 2021.12.09 |