오늘은 장고 기초 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 |