저번주 금요일에 배웠던 django CRUD 세션을 리뷰하는 느낌으로 세션은 진행 되었다.
세션 진행: 경훈님
conda activate
가상환경 이름
pip install django
pip install mysqlclient
: 장고와 mysql 연결프로젝트이름
앱 이름
mysql -u root -p로 접속 후
mysql> create database NAME
character set utf8mb4 collate utf8mb4_general_ci;
admin과 연결된 from import와 url삭제
잘 되었으면 http 주소가 나온다.
settings.py에 모든 것을 넣어놓으면 해킹의 위험이 있기 때문에
manage.py와 같은 디렉토리에 my_settings.py를 만든 후 database와 secret key를 넣는다.
그리고 Settings.py에는 my_settings를 import 해온다.
my_settings.py
settings.py
중요한 정보들은
모두 my_settings.py에 이주시킨다.
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'product',
]
여기서는 간단하게 메뉴만 작성해보았다.
from django.db import models
class Menu(models.Model):
name = models.CharField(max_length=20)
create_at = models.DateTimeField(auto_now_add = True) # auto_now_add = auto_now_add =True 처음 생성을 할 때 시간을 체크해줌
update_at = models.DateTimeField(auto_now = True) # auto_now = True 업데이트 할 때마다 시간을 체크해줌
class Meta:
db_table = 'menus' # mysql에 넘길때 테이블이름 설정
python manage.py makemigrations 앱 이름
python manage.py migrate 앱 이름
쉘에 들어가고 난 후 from ~ import ~
를 꼭 해줘야 한다!
filter는 Queryset형태로 묶여져 있어 update가 가능하지만
>>> Menu.objects.filter(id =1).update(name = '콜드브루')
get은 Object형태로 묶여져 있어 update가 불가능하다.
>>> Menu.objects.get(id =1).update(name = '콜드브루')
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Menu' object has no attribute 'update'