참고 : https://dingrr.com/blog/post/언제-django를-언제-flask를-사용해야-할까
ORM이란?
- ORM (Object-Relational Mapping) : 객체(object)와 관계형(relational) 데이터베이스를 연결(mapping)시켜주는 프로그래밍 기술
- 프로그래밍언어로 쿼리문을 대신 수행해 줄 수 있다.
ex) 유저관련 기능, 게시글관련 기능
mySpartaSns 프로젝트에 user, tweet App 추가하기
$ django-admin startapp user $ django-admin startapp tweet
setting.py에 App 추가
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'tweet', 'user', ]
user App 안에 Models.py 생성
from django.db import models class UserModel(models.Model): class Meta: db_table = "my_user" username = models.CharField(max_length=20, null=False) password = models.CharField(max_length=256, null=False) bio = models.CharField(max_length=256, default='') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)
데이터베이스 변경을 알려주기
python manage.py makemigrations
변경된 데이터베이스 적용하기
python manage.py migrate
로컬 환경에서 admin 페이지 접속
createsuperuser 계정 생성
python manage.py createsuperuser
user App에 Model 등록하기
from django.contrib import admin from .models import UserModel admin.site.register(UserModel)
mySpartaSns/urls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('user.urls')) ]
user/urls.py
from django.urls import path from . import views urlpatterns = [ path('sign-up/', views.sign_up_view, name='sign-up'), path('sign-in/', views.sign_in_view, name='sign-in'), ]
user/views.py
from django.shortcuts import render def sign_up_view(request): return render(request, 'user/signup.html') def sign_in_view(request): return render(request, 'user/signin.html')