UDR 멘토링 1주차-2

오종찬·2022년 10월 3일
0

UDR 멘토링

목록 보기
2/10

3강Django 프로젝트 설계
https://www.youtube.com/watch?v=Go-NZbOgcUE
04강
데이터베이스(ORM)
https://www.youtube.com/watch?v=fTWNpn0-fu0

3강_Django 프로젝트 설계

1. 장고 프레임워크 흐름도

  1. url로 request
  2. 받은url 로url Conf 활동, 어떤 url인지 인식
  3. view에서 메소드나 함수 실행
  4. 모델에게 위임
  5. 데이터베이스에 접근에서 데이터 가공
  6. 가공한 데이터 모델에게 전송
  7. 뷰에게 결과 알려줌
  8. 응답을 위해 템플레이트에게 가장 알맞은 html 요구
  9. respone

2. URL Conf(urls.py)

URLconf - tempProject/tempPjt/urls.py ->파일 위치

path('studnet/register/', views.student_register),
url(클라이언트 요청 url)view(함수 또는 메소드)
이렇게 맵핑해놓음

3. Views(views.py)

def registerStudent(request): #데이터 베이스 등을 이용한 프로그램 실행 결과
return HttpResponse() #response 객체

클라이언트의 요청에 따른 애플리케이션 실행 결과를 template(html),
에러메시지 등을 이용해서 클라이언트한테 response한다

4. Model(models.py)

ORM(Object relational mapping) 사용

class student(models.Model):
s_name = models.CharField(max_length=100) ->필드
s_major = models.CharField(max_length=100) ->필드
s_age = models.IntegerField(default=0) ->필드
s_grade = models.IntegerField(default=0) ->필드
s_gender = models.CharField(max_length=30) ->필드

CharField : 문자열
IntegerField : 숫자열
max_length=100 : 최대길이 100
default=0 : 기본값 0

결과:
studentstudent 테이블 생성
애플리케이션이름
클래스명(소문자)

5. Template(*.html)

tempProject/tempPjt/settings.py에서 Template 디렉토리 정의

6. 프로젝트 설정

settings.py 프로젝트의 전체적인 설정을 담당한다.

개발모드와 운영모드 설정
DEBUG = True #개발모드
DEBUG = False #운영모드

ALLOWED_HOSTS = [서버고유 IP주소(운영모드), 사설IP또는 빈칸(개발)]

7. 기본 사용자및 그룹 테이블 생성

python manage.py migrate ->관리자 모드, 사용자 및 그룹 테이블 생성

python manage.py makemigrations 데이터베이스 변경사항 확인
python manage.py migrate 데이터베이스 변경사항 반영

8. 관리자 계정 생성 및 서버 구정

python manage.py createsuperuser -> 관리자 계정 생성
이후 이름, 주소 비밀번호를 입력

python manage.py runserver 0.0.0.0:8000 ->서버구동(모의)
이후 클라이언트 화면 뜸
클라이언트화면: 127.0.0.1:8000
admin 화면: 127.0.0.1:8000/admin

4강 데이터베이스(ORM)

더 쉽게 만들기 위해 SQL을 맵핑함 ->ORM

1. 테이블 생성

models.py에 테이블 클래스 정의 후 admin.py에 등록 과정 실습

2. 레코드 다루기

장고 shell모드 실행

레코드 추가(create) - 데이터 생성

from students.models import Student
qs = Student(s_name='ohjongchan', s_major='computer', s_age=24,s_grade=2, s_gender='M')
qs.save()

파이썬과 같은 문법, 마지막에 .save() 을 입력해야 저장됌

레코드 읽기(read) - 데이터 검색

데이터 전체: QuerySet 타입으로 반환

qs = Student.objects.all()
print(qs)
<QuerySet [<Student: ohjongchan>, <Student: ohjongchun>, <Student: ohbyeongmin>]>
type(qs)
<class 'django.db.models.query.QuerySet'>

데이터 한개: Student 타입으로 반환

qs = Student.objects.get(s_name='ohjongchan')
type(qs)
<class 'students.models.Student'>

데이터 다수: 첨자([])를 이용한 접근

qs = Student.objects.all()
qs
<QuerySet [<Student: ohjongchan>, <Student: ohjongchun>, <Student: ohbyeongmin>]>
qs[1]
<Student: ohjongchun>

데이터 한개: '.'를 이용한 접근

qs = Student.objects.get(s_name='ohjongchan')
qs
<Student: ohjongchan>
qs.s_major
'computer'

레코드 읽기(read)- 데이터 필터(filter)

_lt: ~보다 작다
_lte: ~보다 작거나 같다
_gt: ~보다 크다
_gte: ~보다 크거나 같다
_isnull: null인 자료 검색
_contains: 특정 문자열을 포함하는 자료 검색
_startwith: 특정 문자열로 시작하는 자료 검색
_endwith: 특정 문자열로 끝나는 자료 검색

데이터 정열

order_by('') 오름차순
order_by('-')내림차순

레코드 업데이트(update) - 데이터 수정

qs.s_major
'computer'
qs.s_major='mathematics'
qs.save()
qs.s_major
'mathematics'

레코드 삭제(delete) - 데이터 삭제

qs.delete()


모르는 내용:
Template 에 대한 추가적인 정보가 필요
SQL, ORM에 대한 내용 필요

검색해본 내용:
구글에 '장고 template' 검색, 아래 주소를 통해 장고 프레임워크에 대해 확실하게 이해되고 template의 역할 확실하게 숙지함
https://velog.io/@gndan4/Django-%EC%9B%B9-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EC%9E%A5%EA%B3%A0-%EA%B8%B0%EB%B3%B8-%EC%84%A4%EC%A0%95-Template-HTML-Form-URL

구글에 'SQL, ORM' 검색, 아래 주소를 통해 둘에 대한 기본적인 내용과 차이점을 숙지함
https://velog.io/@mu1616/ORM-SQL-Mapper-%EC%B0%A8%EC%9D%B4

profile
평범한 대학생의 공부내용

0개의 댓글