장고 재미따
진작에 장고할걸...
자료구조, 알고리즘 괜히한듯
어차피 이해도안되는거 괜히 붙잡고있다가 ㅋ
커리큘럼에 알고리즘 왜 앞에있나요...
재밌는 장고 마스터하러 가보자고
오들도 화.이.팅!
[목차]
01. 프로젝트 구조 만들기
02. 데이터베이스와 Django ORM 알아보기
03. Django Admin - admin 기능 맛보기
04. ORM의 활용과 Admin 익숙해지기
05. 사용자 관리와 로그인 - 화면 띄우기
01. 프로젝트 구조 만들기
* SNS 만들기
1) 프로젝트 구조 만들기
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구만들기
위 내용을 공통을 크게 나누면 '사용자' 와 '글' 로 나눌수 있다.
$ django-admin startapp user # user 앱 생성
$ django-admin startapp tweet # tweet 앱 생성
- user앱 - 사용자 관리 ( 회원가입/로그인/로그아웃)을 담당
- tweet앱 - 글 관리( 글쓰기, 삭제, 수정, 댓글)을 담당
2) 프로젝트 세팅하기 * <프로젝트명> = mysite
- mysite/settings.py 열기
- settings.py 의 설정들 중 INSTALLED_APPS 에 만든 앱을 추가 한다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tweet', # tweet 앱 추가
'user', # user 앱 추가
]
02. 데이터베이스와 Django ORM 알아보기
1) 데이터베이스 연결하기
- 장고 실행하기 - settings.py 에 있는 DATABASES 라는 정보를 가지고 있는 데이터 베이스와 자동 연결
- db.sqlite3 이 생성되었는지 확인, 보통 manage.py 파일이랑 같은 위치에 생성
- 확장팩에서 SQLite Viewer 설치
- db.sqlite3 을 확장팩 SQLite Viewer 로 열어서 확인 가능
2) ORM이란?
ORM (Object Relational Mapping) 은 데이터베이스를 하나의 '객체(Object)' 덩어리로 보고, 데이터베이스를 SQL언어가 아닌 클래스로 쉽게 표현 및 사용 할 수 있게 해 줍니다.
class myBakery:
bread_type = '' # 빵의 종류
bake_time = '' # 굽는 시간
price = 0 # 가격
3) User Model 만들기
* Django 는 기본적으로 User 모델을 제공합니다.
(직접 제작시 아래 방법)
1-1 에서 생성한 User 앱에서 models.py 를 열어서 아래 코드를 넣어준다.
#user/models.py
from django.db import models
# Create your models here.
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)
tip Django 모델 필드의 주로 사용하는 종류 몇가지
문자열 : CharField, TextField
날짜/시간: DateTimeField, DateField, TimeField
숫자 : IntegerField, FloatField
다른 테이블과 연관을 지어 줄 때 : ForeignKey
4) 만든 모델 데이터베이스에 넣기
* Terminal 에서 아래 내용 실행
- 데이터베이스 변경을 알려주는 명령어 makemigrations
python manage.py makemigrations
- 변경 된 데이터베이스를 적용시켜주는 migrate
python manage.py migrate
- 데이터베이스 안을 새로고침 해보면 적용 된 모델이 보여진다.
03. Django Admin - admin 기능 맛보기
1) createsuperuser
- django에서 제공하는 super user를 만들어야 admin 페이지에 접근 가능
- Terminal 에서 python3 manage.py createsuperuser 입력 후 엔터
- Username : 이름(id) 설정
- Email address : 이메일 주소 설정
- password : 비밀번호 설정
- password(again) : 제대로된 비밀번호를 적었는지 확인
- Superuser created successfully.
2) admin 화면에 생성한 모델 등록
user 앱의 admin.py 열어 아래 코드를 넣어준다.
from django.contrib import admin
from .models import UserModel
# Register your models here.
admin.site.register(UserModel) # 이 코드가 나의 UserModel을 Admin에 추가 해 줍니다
04. ORM의 활용과 Admin 익숙해지기
1) Tweet 모델 만들기
tweet앱의 models.py로 들어가서, 아래의 코드를 넣어주세요.
# tweet/models.py
from django.db import models
from user.models import UserModel
# Create your models here.
class TweetModel(models.Model):
class Meta:
db_table = "tweet"
author = models.ForeignKey(UserModel, on_delete=models.CASCADE)
# ForeignKey는 '외부 모델을 가져와서 사용하겠다.
content = models.CharField(max_length=256)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
2) 데이터베이스에 알려주고 적용하기
* Terminal 에서 아래 내용 실행
python manage.py makemigrations
python manage.py migrate
3) admin에 넣어주기
tweet앱의 admin.py에, admin에 추가하는 코드를 작성
from django.contrib import admin
from .models import TweetModel
# Register your models here.
admin.site.register(TweetModel)
다음시간엔 회원가입 로그인 가보자고~
'Sparta Coding Club > Today I Learned [TIL]' 카테고리의 다른 글
[TIL] #DAY - 020 - 파이썬 장고 실무 기초 (4) (내일배움캠프AI 3기) (0) | 2022.09.27 |
---|---|
[TIL] #DAY - 019 - 파이썬 장고 실무 기초 (3) (내일배움캠프AI 3기) (1) | 2022.09.26 |
[TIL] #DAY - 017 - 파이썬 장고 실무 기초 (1) (내일배움캠프AI 3기) (0) | 2022.09.22 |
[TIL] #DAY - 016 - 자료구조, 알고리즘 (2) (내일배움캠프AI 3기) (1) | 2022.09.21 |