19-westagram-backend

홍태경·2021년 4월 6일
0
  1. 회원가입 뷰를 작성해주세요.
    생성한 사용자 클래스를 불러옵니다. 한 번에 모든 클래스를 import 해서는 안됩니다. 내가 사용할 클래스를 정확히 지칭해주세요
    인스타그램에 회원가입 할 때에는 사용자 계정(이메일)을 필수로 필요합니다.
    인스타그램에 회원가입 할 때에는 비밀번호도 필수로 필요합니다.
    이메일이나 패스워드 키가 전달되지 않았을 시, {"message": "KEY_ERROR"}, status code 400 을 반환합니다.
    회원가입시 이메일을 사용할 경우, 이메일에는 @와 .이 필수로 포함되어야 합니다. 해당 조건이 만족되지 않을 시 적절한 에러를 반환해주세요. 이 과정을 email validation이라고 합니다.
    회원가입시 비밀번호는 8자리 이상이어야만 합니다. 해당 조건이 만족되지 않을 시, 적절한 에러를 반환해주세요. 이 과정을 password validation이라고 합니다.
    회원가입시 서로 다른 사람이 같은 전화번호나 사용자 이름, 이메일을 사용하지 않으므로 기존에 존재하는 자료와 중복되어서는 안됩니다. 적절한 에러를 반환해주세요.
    회원가입이 성공하면 {"message": "SUCCESS"}, status code 201을 반환합니다.
    [추가 구현 사항] -> email validation 또는 password validation 과정에서 정규식을 사용해보세요.

vim users/models.py

from django.db import models

Create your models here.

class Singup(models.Model) 
email = models.CharField(max_length=50)                                  
password = models.CharField(max_length=50)                               
Name = models.CharField(max_length=50)                  
phone_num = models.CharField(max_length=50) 

import json
✖ 1 from django.http import JsonResponse
✖ 3 from django.views import View
1 from .models import User
2
3 class SignupView(View):
➤ 4 def post(self, request):
5 ¦ requestpassword = 8
6 ¦
7 ¦ try:
8
9 ¦ ¦ data = json.loads(request.body)
10
11 ¦ ¦ if '@' not in data['email'] or '.' not in data['email']:
12 ¦ ¦ ¦ return JsonResponse({'message':'email validation'},status=400)
13
14 ¦ ¦ if User.objects.filter(email=data['email']).exists():
15 ¦ ¦ ¦ return JsonResponse({'message':'DUPLICATED EMAIL'},status=400)
16 ¦ ¦ if len(data['password']) <= requestpassword :
17 ¦ ¦ ¦ return JsonResponse({'message':'INVALID PASSWORD'},status=400)
18
19 ¦ ¦ User.objects.create(
20 ¦ ¦ ¦ email =data['email'],
21 ¦ ¦ ¦ password = data['password'],
22 ¦ ¦ ¦ name= data['name'],
23 ¦ ¦ ¦ phone_num =data['phone_num']
24 ¦ ¦ )
25 ¦ ¦ return JsonResponse({'message':'SUCCESS'},stats=201)
26
27
28 ¦ except KeyError:
29 ¦ ¦ return JsonResponse({'message':'KEY_ERROR'},status=400)

vim project_westagram/urls.py

from django.urls import path,include
2
1 urlpatterns = [
19 ¦ path('users',include('users.urls'))

vim users/urls.py

from django.urls import path
6 from .views import SignupView
5
4
3
2 urlpatterns =[
1 ¦ path('/users', SignupView.as_view()),
8 ¦ # path('/signin', SigninView.as_view())

http -v POST http://127.0.0.1:8080/users/users email=ewfew@co.kr password=232334534 name=hello phone_num=010-2336-6434

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| django |
| dog |
| information_schema |
| mysql |
| owner_dogs |
| performance_schema |
| startbucks |
| sys |
| users |
+--------------------+
9 rows in set (0.00 sec)

mysql> show tables;
+---------------------+
| Tables_in_users |
+---------------------+
| django_content_type |
| django_migrations |
| django_session |
| users_user |
+---------------------+
4 rows in set (0.01 sec)

mysql> select * from users_user
-> ;
+----+-------------+-----------+-------+---------------+
| id | email | password | name | phone_num |
+----+-------------+-----------+-------+---------------+
| 1 | hello | 232334534 | hello | 010-2336-6434 |
| 2 | ewfew@co.kr | 232334534 | hello | 010-2336-6434 |
+----+-------------+-----------+-------+---------------+
2 rows in set (0.00 sec)

profile
나의 에고를 인정하고 사랑하자

0개의 댓글