선발대

[스파르타] Django 기초반 1주차 (완강) 본문

스파르타코딩클럽/강의 정리

[스파르타] Django 기초반 1주차 (완강)

신선한 스타트 2022. 1. 19. 19:19

1. 수업 후기

 

  • 강의 개수: 12개
  • 총 강의시간: 1시간 43분
  • 수업 목표:
  • 1. 웹의 기본적인 구조를 이해하고, 5주동안 만들 프로젝트를 살펴본다.
  • 2. Python의 기초를 다룬다.
  • 3. Django의 기본 구조와 동작 원리를 이해한다.

 

안녕하슈크림

 

2. 수업내용 정리

1-1. 1주차 우리가 배울 것
더보기
더보기

01. 우리가 배울 기술

 

  • Python
  • HTML / CSS
  • Django
  • 침착함

 

02. 완강 후 우리의 모습 & 주차별 학습 내용

 

  • 1주차: Python 문법과 Django의 구조와 명령어
  • 2주차: Django ORM과 Django Admin, Django 사용자 관리
  • 3주차: Django 사용자 모듈 확장하기, 글 읽기 / 쓰기 / 지우기
  • 4주차: Django 팔로우 / 팔로잉 만들기, 기능 활용하기
  • 5주차: 서비스 배포해보기

 

03. 만들 서비스 살펴보기

 

  • 회원가입 / 로그인 / 로그아웃
  • 글 읽기 / 글쓰기 / 글 삭제하기
  • 댓글쓰기 / 댓글 삭제하기
  • 사용자 리스트 보기 / 친구 추가하기

 

1-2. 필수 프로그램 설치
더보기
더보기

01. Pycharm Professional 설치 가이드

 

02. JetBrains 회원가입 가이드

 

03. Python 설치

 

1-3. 웹의 동작 순서 및 개념
더보기
더보기

01. 용어 정리 - 클라이언트 / 서버 / API

 

  • 클라이언트: 요청 보내는 곳 / 내 컴퓨터, 크롬
  • 서버: 요청 받아서 응답해주는 곳 / 우리가 로그인 버튼 누르고 뒷 편에서 이뤄지는 과정들
  • API: 데이터를 주고 받는 방식을 정한 약속 / url

 

02. 웹의 동작 구조

 

  • 클라이언트가 서버에 필요한 정보 요청(Request)
  • 서버는 요청 들어온 API 확인하고 그에 맞는 HTML 혹은 data 응답(Response) 해줌.
  • 서버가 클라이언트한테 응답해주는 방식은 크게 2가지로 나뉨.
  • 페이지 받는 경우: HTML, CSS, JS가 적절하게 섞여있는 페이지를 받는 경우
  • 데이터만 받는 경우: 페이지, 화면은 크게 필요없고, '데이터'만 받고 싶은 경우

 

1-4. PyCharm과 친해지기
더보기
더보기

01. PyCharm Professional 등록 가이드

02. 파이참 (PyCharm)

03. 파이썬 실행하기

 

1-5. Python 기초 문법 - 1 (파이썬 데이터 타입)
더보기
더보기

01. 변수란?

 

  • 변수: 데이터를 담는 바구니
  • 변수이름 = 값

 

02. 숫자형

 

  • 숫자형: 변수에 들어간 값이 '숫자'를 뜻하는 자료

 

03. 문자형

 

  • 문자형: 변수에 들어간 데이터가 문자, 단어 등으로 구성된 자료
  • 문자열 기준으로 나누기: 문자열.split('기준')

 

04. 리스트

 

  • 리스트: 여러 개의 데이터를 하나의 변수에 나열하듯 저장할 수 있는 방법
  • 리스트 = [ ... ]
  • 리스트 내부의 요소들은 '인덱스'라는 번호를 가지고 있음.
  • 리스트 추가하기: 리스트.append('추가할 데이터')

 

05. 딕셔너리

 

  • 딕셔너리: 대응 관계로 데이터를 나타낼 수 있는 자료형. 사전처럼 '키' - '값'으로 구성됨.
  • 딕셔너리 = { ... }
  • 딕셔너리 값 가져오기: 딕셔너리명['키 값'], 딕셔너리명.get('키 값')

 

1-6. Python 기초 문법 - 2 (조건문과 반복문)
더보기
더보기

01. 조건문 (if문)

 

if 조건:
	조건이 참일 경우 실행
else: 
	조건이 거짓일 경우 실행

 

02. 조건문 (for문)

 

for 변수 in 리스트:
	실행할 문장

 

1-7. Python 기초 문법 - 3 (함수와 클래스)
더보기
더보기

01. 함수

 

  • 함수의 역할: 인자들(변수들)을 함수에 넣고, 함수를 사용해서 결과물을 내어오는 것.
  • 과일(인자)믹서기(함수)에 넣으면 과일주스(결과물) 완성!

 

def 함수명('매개변수'):
	실행할 문장들

 

02. 클래스

 

  • 빵 틀(클래스)머핀(객체)를 굽는다.
  • 클래스마다 고유한 성격을 가지고 있어, 클래스에 의해 만들어지는 객체들도 각각의 성격 존재.
  • 장고에서 데이터베이스 사용할 때 사용함.

 

class myBakery:
	title = ''
    time = ''
    taste = ''
    
cookie = myBakery() # cookie는 객체임
cookie.title = '머핀' # cookie의 속성들
cookie.time = '1h'
cookie.taste = '초콜릿'

 

1-8. Python의 Web Framework!?
더보기
더보기

01. 파이썬 웹 프레임워크란

 

  • 프레임워크: 개발을 도와주는 하나의 틀
  • 틀은 결과물을 일정한 형태로 만들 수 있도록 도와줌.
  • 사용자가 비슷한 방법과 방식으로 완성된 형태 만들 수 있음.

 

02. 파이썬 웹 프레임워크의 종류

 

  • 최소한의 기능만 제공하는 형태: 서버 만들기 위해 최소한의 기능만 제공 / Flask, Pyramid
  • 이미 많은 기능들을 제공하는 형태: 웹서비스에 공통으로 필요한 부분들 미리 구현됨 / Django

 

03. Django VS Flask, Pyramid

 

Django Flask, Pyramid
거대한 프레임워크 경량 프레임워크
많은 유틸(기능)들이 이미 만들어져 있음 최소한의 기능들만 제공함
DB, 로그인, Admin, 패스워드 암호화 등 이미 제공 로그인, DB 등의 관리를 직접 해줘야 함.
커뮤니티, 문서가 잘 되어 있음 관리자 페이지 구축을 따로 해줘야 함.

 

1-9. Django 알아보기
더보기
더보기

01. 장고의 MVT 패턴

 

  • User ← URL Conf, Template → View → Model(ORM) → DB

 

  • M (Model)
  • 데이터베이스의 모델 (ORM)
  • 저장하고 사용되는 데이터 형태
  • 데이터베이스와 연결되어 있음

 

  • T (Template)
  • 사용자에게 보여지는 부분
  • 화면
  • Template 안에서 html 파일을 전달하는 것

 

  • V (View)
  • 실질적으로 프로그램이 동작하는 부분
  • url을 요청하고 응답하는 그 사이에 일어나는 '서비스'들이 존재하는 곳
  • 기능을 만들고 싶을 때는 View 부분에서 작업함

 

02. ORM 이란?

 

  • Django의 ORM은 Python으로 DB 클래스 모델 만들고,
  • 만든 모델을 바탕으로 자동으로 DB 다룰 수 있게 도와줌.
  • 데이터베이스와 소통하는 방식임.
  • 쿼리(DB 다루기 위해 사용하는 언어) 작성하지 않아도 되는 것!

 

# 글쓰기 모델 예제
class Post:
    id = IntegerField()
    title = CharField()
    author = CharField()
    context = TextField()

 

1-10. 장고 프로젝트 만들기
더보기
더보기

01. 장고 프로젝트 만들기

 

  • Pycharm 새 프로젝트 > 프로젝트 이름: mySpartaSns > Django 선택
  • > 경로, 파일 이름 확인 > New Virtualenv 설정 확인 > Create

 

02. 장고 프로젝트 구조 보기

 

  • setthings.py: 장고 프로젝트 전체의 환경설정을 담당함.

 

  • INSTALLED_APPS: 장고에 설치된 앱들
  • MIDDLEWARE: 사용자 요청 / 응답 사이에서 작동하는 시스템들
  • TEMPLATES: 나의 html 파일을 자동으로 인식
  • DATABASES: 내가 사용할 데이터베이스 연동 설정
  • AUTH_PASSWORD_VALIDATORS: 패스워드 보안 수준 검증
  • LANGUAGE_CODE: 화면에 어떤 언어를 보여줄 것인지
  • TIME_ZONE: 우리가 어떤 시간에 있는지

 

  • urls.py: 장고 프로젝트 전체의 API를 담당하는 부분.
  • 접속할 수 있는 url 주소를 만들고 관리해주는 공간.

 

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

 

1-11. 장고를 사용한 화면 띄우기
더보기
더보기

01. 장고 실행해보기

 

  • 우측 상단 녹색 재생 버튼 클릭
  • 콘솔창의 url 클릭

 

02. 화면에 글자 띄우기

 

  • mySpartaSns 패키지에 views.py 생성
  • HttpResponse(): 괄호 안의 내용을 인터넷 창 화면에 보여주는 역할

 

# views.py
from django.http import HttpResponse

def base_response(request):
    return HttpResponse("안녕하세요! 장고의 시작입니다!")

 

# urls.py

from django.contrib import admin
from django.urls import path
from . import views # 내가 있는 폴더에서 views라는 파이썬 파일을 가져올 것임

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/', views.base_response,name='first_test'), 
    # test 부분 추가
    # test라는 url로 base_response 함수와 연결시켰음
]

 

03. 화면에 내가 만든 html 띄우기

 

  • template > my_test.html 생성 > 코드 붙여넣기
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>테스트 페이지</title>
</head>
<body>
<h3>테스트 페이지 입니다! 장고를 사용했어요!</h3>
</body>
</html>

 

  • views.py에 코드 추가하기
from django.shortcuts import render

def first_view(request):
    return render(request, 'my_test.html')
    # render는 template에 있는 html 파일을 찾아서 보여줌

 

  • views.py에 새로운 변경사항이 생겼으니 urls.py도 변경
from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/', views.base_response,name='first_test'),
    path('first/', views.first_view,name='first_view'), # 이 부분 추가
]

 

1-12. 1주차 Wrap Up!! & 숙제 설명
더보기
더보기

01. 오늘의 복습

 

  • 웹의 기본 개념, 흐름 - 서버, 클라이언트, 요청, 응답
  • Python - 변수, 반복문, 조건문, 함수, 클래스
  • 장고 프로젝트 - 장고 동작방식, 간단한 구조

 

02. 숙제

 

  • my_station = ['야탑', '모란', '이매', '선릉', '한티', '왕십리']
  • 1. project_01.py 만들고, statinon_list 함수 작성하기: 데이터를 반복문으로 출력
  • 2. project_02.py 만들고, 게시글 저장하는 class 만들기. 변수는 id, title, autor, content.
Comments