Django - C.R.U.D

LEE_JUN_HA·2021년 2월 18일
0

C.R.U.D란?

CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다.

1. 가상환경 세팅

• 콘다 리스트 확인

conda env list

• 가상환경 만들기

conda create -n '이름'(weseatbucks17) python=3.9 (엔터) -이렇게만 하면 생성만 한 거다

• 콘다 활성화

conda activate westarbucks17 (엔터)

콘다 내에 설치 확인 - pip freeze

pip install django

pip install mysqlclient

cd desktop

django-admin startproject letsgo3 (그냥 하나의 폴더를 만든다고 생각하면 된다)

cd letsgo3 (주로 처음에는 setting.py를 많이 쓴다)

앱 만들기 - python manage.py startapp '앱 이름'(users(복수로 하는 거 추천-어떤 기능으로 하는지 알고 이름 짓기))

유저 안의 모델스 파이를 제일 많이 쓴다

settings.py의 installed_apps에 새로 만든 앱(users)을 넣어줘야한다

mysql접속

  • 꼭 새 터미널을 켜고 mysql -u root -p

mysql> create database "NAME"(letsgo3)(settings.py에서 데이터베이스에 넣은 이름) character set utf8mb4 collate utf8mb4_general_ci;

show databases; - 보는 용도

USE "NAME"(letsgo3)

settings.py 에서 주석 설정

urls.py에서 from django.contrib import admin 주석처리
path(;admin/--------------------------)주석처리

settings.py에서 MYSQL database와 연동 (settings.py 안의 databases 밑에 name,user 등 수정
ex)

'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'letsgo3',
        'USER': 'root',
        'PASSWORD': 'wnskdpdyd',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        }

원래 터미널에서 python manage.py makemigrations
그다음 python manage.py migrate

mysql 터미널에서 show table;

class Menu(models.Model): ---------------- models.Model 대소문자 확실히 하기(models.는 클래스이고, 클래스 뒤에 첫 문자는 꼭 대문자)

#column 정의
name = models.CharField(max_length=20)
age = models.IntegerField()
email = models.EmailField(max_length=100)

class Meta:
db_table='users'

shell 키는 법

활성화 - conda activate westarbucks17 (엔터)

python manage.py shell(manage.py가 있는 데에서 실행)
from users(앱이름이다 앱 이름이 user면 user로 해주기).models import Menu (users에서 mdels.py에서 Menu라는 클래스를 imprt한다)

Menu.objects.create(name='이준하', age=19, email=dlwnsgk791@naver.com)

mysql 터미널에서 select * from menus;

read하는 방법은 get과 fillter가 있다

get은 1개의 값만 있을 때 쓰고(중복 되면 에러) fillter는 쿼리셋으로 여러개 출력 가능)

profile
할 수 있다, 할 수 있다, 아자뵤!

0개의 댓글