오늘은 Django에 대해서 조금 더 알아보는 시간을 가져보았다.
- Django를 실행시키고 관리하기 위한 명령어를 알아봅니다.
- Django의 ORM을 알아보고 Database와 연동하여 사용 해 봅니다.
- Admin의 기능을 알아봅니다.
- 사용자 모델을 만들고 사용자 관리 기능을 구현 해 봅니다. (회원가입/로그인)
먼저 장고가 일하는 순서를 그림으로 보면,

먼저 프로젝트를 세팅해 보겠다..

먼저 프로젝트 최상위 폴더 내에 있는 seetings.py를 다음과 같이 수정한다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tweet',
'user',
]
이 settings.py에는 Django가 서버를 실행하면서 알아야 할 정보들이 저장된다.
이중 INSTALLED_APPS에 우리가 만든 앱을 추가한다. (tweet, user)
먼저 장고를 실행하여 데이터베이스와 연결을 시켜주자.
python manage.py runserver
터미널에 해당 코드를 입력하면 장고가 실행이된다.

왼쪽 탐색기에 db.sqlite3이 생성되었는지 확인한다.

vscode를 사용하는 사람이라면 이 확장 프로그램을 설치하면 쉽게 데이터베이스를 확인할 수 있다.
다음은 로그인 기능을 구현하기 위한 작업을 해주겠다.
참고로 장고는 기본적으로 로그인/로그아웃이 다 구현이 되어있다 ! 우리는 그냥 끌어다가 사용하면 된다.
먼저 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)
UserModel 클래스 내에서 Meta 클래스는 이 모델의 정보를 담고 있다. 여기에서는 테이블 이름만 정해두었다.
이제 우리는 데이터베이스 변경을 장고에게 알려주어야 한다.
python manage.py makemigrations
터미널에 해당 코드를 입력하고 성공하면 아래와 같이 출력되는것을 확인할 수 있다.

이제는 변경된 데이터베이스를 적용시켜주어야 한다.
python manage.py migrate
마찬가지로 터미널에 해당 명령어를 입력한다.

잘 적용이 된 것을 확인할수 있다.
자 이제 장고를 실행해보자!
서버를 실행하고 http://127.0.0.1:8000/admin 으로 접속해보자. 아래와 같은 화면이 나올것이다.

먼저 장고에서 제공하는 super user를 만들어야 상단의 admin 페이지에 접근 할 수 있다.
터미널에서 Ctrl + c 를 눌러 장고를 중단하고 터미널창에 아래의 명령어를 입력하자.
python manage.py createsuperuser

해당 사진과 같이 입력창이 나오는데 본인이 사용하는 아이디와 패스워드를 입력해주자.
이제 다시 장고를 실행시키고 아까의 admin 페이지로 돌아가서 로그인을 해주자

본격적인 admin 페이지에 접속을 성공했다.
다음은 admin 화면에 우리가 만든 모델도 등록해보자.
user 폴더내의 admin.py 파일로 가보자.
여기서 아까 우리가 만들어둔 UserModel을 넣어주자
아래의 코드를 admin.py에 붙혀넣어보자.
\
from django.contrib import admin
from .models import UserModel
# Register your models here.
admin.site.register(UserModel) # 이 코드가 나의 UserModel을 Admin에 추가 해 줍니다
이제 다시 장고 admin 페이지로가서 새로고침을 해 주면 UserModel이 들어가 있는 것을 볼 수 있다.
장고는 아무래도 완전 처음 다루는 프레임워크다 보니 이래저래 에로사항이 많이 생겼었다 ㅠㅠ
다음에는 vscode 에서 장고 프로젝트를 세팅하는 방법을 한 번 작성해볼까 한다.
'TTL > 1주차 ~ 4주차 TIL (8.29 ~ 9.23)' 카테고리의 다른 글
| 2022-09-23 TIL (Django의 데이터베이스 테이블간의 관계) (0) | 2022.09.25 |
|---|---|
| 2022-09-21 TIL (vscode Django 장고 개발환경 세팅하기 - windows, Linux, MacOs) (0) | 2022.09.22 |
| 2022-09-19 TIL (0) | 2022.09.20 |
| 2022-09-16 TIL (0) | 2022.09.18 |
| 2022-09-15 TIL (0) | 2022.09.16 |