본문 바로가기

내일 배움 캠프/TIL

TIL) 4주차 2일 - 장고 실무 기초

 

오늘은 장고 기초 2주차 강의를 들었다.

 

강의는 파이참으로 하지만 

 

난 vs code로 해서 그런가 생각보다

 

오류가 잘 난다 ... 

 

시작 하기에 앞서 정말 중요한 것이 있다.

★☆ 앞으로의 다짐 ★☆
앞으로 절때 새터미널을 자주 열지 않겠습니다.
만약 새로 열었다면 가상환경이 잡혀있는지 보고 안잡혀 있다면 명렁어를 통해 가상환경을 열겠습니다.

 

 


01. 장고 프로젝트 - visual studio code용

1) 가상환경 생성

  • python -m venv venv (명령어 작성후 절때 새로운 터미널 열지 않기! 작성한 터미널에 계속 진행해야함)

2) 가상환경 활성화

  • source venv/Scripts/activate

3) 장고 프로젝트 생성

  • django-admin startproject <프로젝트명>

4) 장고 서버 실행

  • python manage.py runserver

5) 새로운 앱 생성

  • django-admin startapp <폴더명> 또는 python manage.py startapp <폴더명>

6) templates 폴더 생성

  • settings.py 파일 속 TEMPLATES 변수를 찾고 그안에 있는 'DIRS' : [ ] 을 'DIRS': [BASE_DIR / 'templates'] 로 바꾼다. (BASE_DIR / 'templates' 가 뜻하는 바는 ' ' 속 폴더, 즉 'templates를 가르키게 하겠다' 라는 뜻)

 


02. 프로젝트 구조

1) user앱 - 사용자 관리 ( 회원가입/로그인/로그아웃)을 담당

     tweet앱 - 글 관리( 글쓰기, 삭제, 수정, 댓글)을 담당

 

2) views.py

  • url에서 어떤 역할을 할 건지, 어떤 기능을 수행할 건지 만들어주는 공간

3) urls.py

  • 사용자가 어떤 주소로 접근할 수 있게 정해주는 공간

4) 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)
  • django 모델 필드의 종류
문자열 : CharField, TextField
날짜/시간: DateTimeField, DateField, TimeField
숫자 : IntegerField, FloatField
다른 테이블과 연관을 지어 줄 때 : ForeignKey
  • 모델을 만든 후 데이터베이스에 넣기 
python manage.py makemigrations : 데이터베이스 변경을 알려주는 명령어
python manage.py migrate : 변경된 데이터베이스를 적용시켜주는 명령어

성공시 위와 같이 출력

 

5) user / admin.py

from django.contrib import admin
from .models import UserModel

# Register your models here.
admin.site.register(UserModel) # 이 코드가 나의 UserModel을 Admin에 추가 해 줍니다

 

6) 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)

 

7) tweet / admin.py

from django.contrib import admin
from .models import TweetModel

# Register your models here.
admin.site.register(TweetModel)

 

8) Django Admin - admin 기능

python manage.py createsuperuser : super user를 생성하는 기능

 

 


 

'내일 배움 캠프 > TIL' 카테고리의 다른 글

TIL) 4주차 4일 - 장고 실무 기초  (0) 2023.04.07
TIL) 4주차 3일 - 장고 실무 기초  (0) 2023.04.05
TIL) 4주차 1일 - 장고 실무 기초  (0) 2023.04.03
TIL) 3주차 4일  (0) 2023.04.01
TIL) 3주차 3일  (0) 2023.03.29