Pychram 환경에서 개발되었습니다
프로젝트를 django로 세팅하고, python 버전과 프로젝트 경로를 확인한 뒤 CREATE 를 실행한다
프로젝트에 구분되는 기능을 나눠주는 앱을 생성한다.
하나의 프로젝트에 몰아 넣는 것 보다 가독성이 좋아진다.
django-admin startapp user
django-admin startapp tweet
생성한 프로젝트는 프로젝트의 settings.py 중, Installed_APP에 적어준다.
연결하지 않은 앱을 실행해도 적용할 수가 없다!
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user',
'tweet',
]
앱 마다 urls.py 파일을 생성하고, 프로젝트의 urls.py에서 각 앱의 url을 읽을 수 있게 해준다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('user.urls')),
path('', include('tweet.urls')),
]
include 메서드를 활용해 특정 앱 내의 모든 url을 읽을 수 있게 한다.
AbstractUser 기능을 활용한 UserModel을 생성해서 회원가입/로그인/로그아웃 API를 만들자
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserModel(AbstractUser):
class Meta:
db_table = "user"
bio=models.CharField(max_length=256, default='')
사용할 테이블 중, bio를 제외한 모든 필드가 존재하기 때문에 bio만 추가로 작성한다
이렇게 작성한 모델은 Makemigrations 와 Migrate 를 통해서 프로젝트에 추가해준다!
python manage.py makemigrations
python manage.py migrate
UserModel을 가지고 회원가입 API를 작성한다.
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결
urlpatterns = [
path('sign-up/', views.sign_up_view, name='sign-up'),
def sign_up_view(request):
if request.method == 'GET':
user = request.user.is_authenticated
if user:
return redirect('/')
else:
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
password2 = request.POST.get('password2')
bio = request.POST.get('bio')
if password == password2:
exist_user = get_user_model().objects.filter(username=username)
if not exist_user:
UserModel.objects.create_user(username=username, password=password, bio=bio)
return redirect('/sign-in')
else:
return render(request, 'user/signup.html')
else:
return render(request, 'user/signup.html')
<form class="form-area" method="post" action="/sign-up/">
{% csrf_token %}
<div class="form-group mt-2 mb-2">
<label for="username">이름</label>
<input type="text" class="form-control" id="username" name="username">
</div>
<div class="form-group mt-2 mb-2">
<label for="password">비밀번호</label>
<input type="password" class="form-control" id="password" name="password">
</div>
<div class="form-group mt-2 mb-2">
<label for="password2">비밀번호 확인</label>
<input type="password" class="form-control" id="password2" name="password2">
</div>
<div class="form-group mt-2 mb-2">
<label for="bio">나를 한마디로</label>
<input type="text" class="form-control" id="bio" name="bio">
</div>
<hr>
<div style="float: right">
<button type="submit" class="btn btn-primary">회원가입</button>
<a href="/sign-in" class="btn btn-secondary">로그인 페이지로</a>
</div>
</form>
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결👨💻트윗 작성하기
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결👨💻트윗 삭제하기
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결👨💻트윗 상세보기
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결👨💻TweetComment
👨💻코멘트 출력
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결👨💻코멘트 작성하기
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결👨💻코멘트 삭제하기
📌 Django API 작성 순서!
1. urls.py 에 앱 루트 url 작성
2. views.py 에 API 함수 작성
3. POSTMAN 테스트
4. 프론트엔드 연결