Django
-
Django 테이블 이름 변경 및 삭제 후 마이그레이션시 에러Django 2021. 12. 28. 13:08
'NodeNotFoundError', 'No migrations to apply', 'Table doesn't exist' 등의 에러를 한번의 작업으로 맞딱뜨리는 것은 그리 어려운 일이 아니었습니다...ㅎㅎ 그래서 이런 에러들이 왜 발생했고 어떤 이유로 해결된 것인지 차근차근 정리해보고자 합니다. 우선 'postings'라는 앱을 생성하고 models.py 작성을 끝내고 마이그레이션 한 후에 DB를 봤는데 'postings_posting'이라고 되어 있어서 지저분하고 중복된다는 느낌이 강하게 들어서 바꾸고 싶었습니다. 물론 에러가 발생하면 어쩌지 라는 생각도 들었지만 에러가 발생하면 찾아서 해결하면 되겠지라고 생각해서 우선 DB에서 직접 테이블 이름을 바꿔봤습니다. mysql> ALTER TABLE po..
-
Login의 View 작성시 피해야 할 코드 작성법Django 2021. 12. 23. 17:04
제가 Login view 부분을 작성할 때 했던 실수들이 많이 담겨있어서 어떤 식으로 고치면 좋을지 공유하고자 합니다. class LogInView(View): def post(self, request): data = json.loads(request.body) email = data['email'] password = data['password'] try: user = User.objects.get(email=email) user_id = user.user_id if not User.objects.filter(email=email).exists() or not User.objects.filter(password=password).exists(): return JsonResponse({'message':..
-
Email Validation (이메일 유효성 검사 - 정규표현식 활용)Django 2021. 12. 19. 23:51
회원가입 view를 만들려고 합니다. 정규표현식에 대해서 다 알고 넘어가는 것이 제일 좋은 방법이겠지만 필요한 부분에 대해 그때그때 학습하는 것이 좋겠다는 생각에 제가 사용한 정규표현식에 대해 글을 써보고자 합니다. 이번 글에서는 정규표현식을 활용한 이메일 유효성 검사에 대해 중점적으로 다루고자 합니다. 제가 정의한 회원가입에 적합한 이메일의 형식은 아래와 같습니다. 1. 알파벳 대/소문자로 시작할 것 - 아래의 1번에 해당 2. @ 이전 부분에는 특수문자가 들어갈 수 있으나 특수문자로 마무리하지 말 것 - 아래의 2번에 해당 3. @ 와 . 이 포함되었는가 (@ 이후에 최소 한개 이상의 . 이 포함될 것) - 아래의 3 ~ 7번에 해당 class SignUpView(View): def post(self..
-
Foreign Key - CASCADEDjango 2021. 12. 16. 17:51
Foreign Key - 한 테이블을 다른 테이블과 연결 (1:N 관계) - 참조되는 테이블의 필드(1:N에서 1이 되는 테이블)는 반드시 UNIQUE나 PRIMARY KEY 제약 조건 설정 - 2개의 인자 필요(대상이 되는 클래스, 대상이 되는 클래스 삭제시 조건) - 참조되는 테이블의 데이터 수정이나 삭제가 발생하면, 참조하고 있는 테이블의 데이터도 같이 영향을 받습니다. - ex) 게시글 - 댓글 이때 참조하고 있는 테이블의 동작은 다음 키워드를 사용하여 FOREIGN KEY 제약 조건에서 미리 설정할 수 있습니다. 1. ON_DELETE (참조되는 테이블의 값이 삭제되는 경우) 2. ON_UPDATE (참조되는 테이블의 값이 수정되는 경우) 외래 키가 설정된 테이블에 레코드를 입력하면, 기준이 되..
-
CLI를 통해 FK로 연결된 하위 테이블 데이터 입력하는 방법Django 2021. 12. 12. 22:59
스타벅스 홈페이지를 모델링하여 데이터베이스를 구조화하는 중에 마주한 에러메세지에 대해 다뤄보고자 합니다. 우선 CLI(Command Line Interface)인 터미널의 창 하나는 mysql에 접속하고 다른 창 하나는 python shell을 켜서 작업하시는 것을 추천드립니다. Menu - 음료, 푸드, 상품, 카드 Categories - 콜드 브루, 브루드 커피, 에스프레소, ..., 브레드, 케이크, ..., 머그, 실물카드 등 1대 다의 구조이므로 Categories 클래스에 FK(Foreign Key - 다른 테이블을 참조)를 두어 Menu의 PK와 CASCADE를 통해 연결시켰습니다. 우선 mysql에서 Menu에 아래와 같이 값을 입력했습니다. Menu의 경우 FK로 연결되어 있지 않기에 아..