웹의 동작 순서 및 개념
- 클라이언트 : '요청을 보내는 곳' 주로 '나', '내 컴퓨터' 혹은 '크롬'을 클라이언트라고 한다.
- 서버 : '요청을 받아서 응답 해 주는 곳' 우리가 인터넷에서 웹페이지, 로그인등의 행동을 하고 난 후에 이루어지는 많은 과정들을 처리 해준다.
- API : 데이터를 어떻게 주고 받자! 라고 정한 약속
1. 페이지를 받는 경우 : HTML, CSS, Javascript가 섞여있는 페이지를 받는 경우
2. 데이터만 받는 경우 : 페이지나 화면은 크게 필요없고, 데이터만 받고싶은 경우
Pycharm
- Python Interpreter : 내가 적은 파이썬 언어를 컴퓨터가 이해할 수 있도록 번역시켜준다.(파이썬 번역기)
- Virtual environment (venv) : 각 프로젝트마다 환경을 다르게해주는 파이썬만의 가상환경이다.
Python 데이터 타입
1. 변수 : 데이터를 담는 상자
- 변수이름 = 값
- my_name = 'paul'
2. 숫자형
- num = 29
- 음수, 소수점, 사칙연산 가능
3. 문자형
- num_string = '124'
- 작은 따옴표나 큰 따옴표로 묶는다.
- 숫자형을 따옴표로 묶으면 문자형으로 처리한다.
- 문자열의 합과 나누기
str_a = 'Love'
str_b = 'Python'
result = str_a + str_b
print(result)
# 실행 결과 : LovePython
a = 'love,eat,coding'
split_result = a.split(',') # 문자열.split('기준')
print(split_result)
# 실행 결과 : ['love', 'eat', 'coding']
- .split 을 사용해서 문자를 나눌 수 있으며, 문자열.split('기준') 방식으로 작성한다
- 결과는 리스트의 형태로 저장된다.
4. 리스트
- 여러 개의 데이터를 나열하듯이 하나의 변수에 저장하는 방법
- 대괄호 [ ] 로 묶이고 ' , ' 로 구분한다.
- 리스트 안의 요소들마다 인덱스 번호를 갖고 있으며, 0 부터 시작한다.
my_fav = ['python','django','web']
print(my_fav[0])
print(my_fav[1])
print(my_fav[2])
print(my_fav[-1]) # 맨 마지막 요소
# 실행 결과
# python
# django
# web
# web
- 리스트 추가
my_fav = ['python','django','web']
my_fav.append('paul') # 해당하는 리스트의 가장 끝에 추가해준다.
my_fav.append('python')
print(my_fav)
# 실행 결과 : ['python', 'django', 'web', 'paul', 'python']
- .append 를 사용하여 리스트의 끝에 추가한다. 리스트변수명.append('추가할요소') 방식으로 작성한다.
5. 딕셔너리
- key : value 의 형태로 이루어져있다.
- 중괄호 {} 로 묶이고 ' , ' 로 구분한다.
- 데이터 가져오기
my_info = {'name':'paul','phone':'01012341234','birth':'0626'}
print(my_info)
print(my_info['name'])
print(my_info.get('name'))
# 실행 결과
# {'name': 'paul', 'phone': '01012341234', 'birth': '0626'}
# paul
# paul
- 딕셔너리변수명['key'] 으로 value를 꺼낼수있다.
- .get('key') 도 같은 기능을 한다.
조건문과 반복문
1. 조건문
my_age = 100
if my_age == 100:
print('저는 100 살입니다.')
else:
print("거짓말!")
- 조건에 사용되는 비교연산자
- < , > , == , != , >= , <=
2. 반복문
- 형식
for 변수 in 문자열,리스트, 튜플 :
실행 코드
- 예제 1
jumsu_list = [90,100,25,35,40]
for jumsu in jumsu_list:
print(jumsu)
# 실행 결과
# 90
# 100
# 25
# 35
# 40
- 예제 2
for i in range(0, 1000):
print(f'{i}01호')
함수와 클래스
1. 함수
새로운 결과물을 만들어 주는 과정
ex) 과일(인자들) - 믹서기(함수) - 과일주스(결과물)
- def 함수명('매개변수'):
실행 할 문장들
def my_sum_func(a,b):
result = a+b
return result
my_sum = my_sum_func(10,20)
print(my_sum)
2. 클래스
빵틀(클래스)과 빵(객체)
클래스 마다 고유한 성격을 가지고 있어서, 클래스에 의해서 만들어지는 객체들은 각각의 성격을 가지게 된다.
class myBakery:
title = ''
time = ''
taste = ''
cookie = myBakery() # 클래스 대입
cookie.title = '머핀' # 클래스에 속성들을 넣어줌
cookie.time = '1h'
cookie.taste = '초콜릿'
print(cookie)
print(cookie.title)
# 실행 결과
# <__main__.myBakery object at 0x000001F69B8F6520>
# 머핀
Python의 Web Framework
- 프레임워크 : 개발을 도와주는 하나의 틀
- 파이썬 웹 프레임워크의 종류
- 최소한의 기능들만 제공하는 형태
- Flask
- Pyramid
- 이미 많은 기능들을 제공하고 있는 형태
- Django : 많은 개발자들이 웹서비스를 개발하기 위해서 사용하는 요소들을 공통적으로 추려서 제공한다.
Django 알아보기
- django 의 일하는 방식 : MVT 패턴
- M (Model)
- 데이터베이스의 모델 (ORM : 데이터베이스와 소통하는 방식중 하나)
- 저장되고 사용되는 데이터의 형태
- T (Template)
- 사용자에게 보여지는 부분
- 화면
- V (View)
- 실질적으로 프로그램이 동작하는 부분
- url을 요청하고 응답하는 그 사이에 일어나는 '서비스'들이 존재하는 곳
- ORM
- 데이터베이스 형태를 클래스로 나타낸다.
- 데이터베이스를 다루기 위해서 사용되는 '쿼리' 를 작성하지 않아도 데이터 CRUD 를 도와준다.
- 간단 예
class Post:
id = IntegerField()
title = CharField()
author = CharField()
context = TextField()
Django 프로젝트 만들기
- Django 프로젝트 구조
- 하위 mySpartaSns 폴더 : 프로젝트의 가장 핵심적인 세팅을 담당한다.
- settings.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),
]
Django 페이지 띄우기
- views.py
from django.http import HttpResponse
def base_response(request):
return HttpResponse("안녕하세요! 장고의 시작입니다!")
# HttpResponse()는 괄호 안에 있는 내용을 인터넷 창 화면에 보여주는 역할을 한다.
- urls.py
from django.contrib import admin
from django.urls import path
from . import views # 현재 폴더에서 views.py 파일 가져온다.
urlpatterns = [
path('admin/', admin.site.urls),
path('test/', views.base_response,name='first_test'),
]
# test/ url로 views파일의 base_response 함수와 연결 시켜줌
- 로컬호스트 주소 : http://127.0.0.1:8000/test/
Django html파일 띄우기
- templates 폴더에 html 파일 생성
- views.py
from django.http import HttpResponse # 괄호안의 내용을 전달해준다.
from django.shortcuts import render # HTML 파일을 보여준다.
def base_response(request):
return HttpResponse("안녕하세요! 장고의 시작입니다!")
# html 파일 보여줌
def first_view(request):
return render(request, 'my_test.html')
render 를 사용해서 templates 에 있는 html 파일을 찾아서 보여준다.
- 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/ url로 views파일의 base_response 함수와 연결 시켜줌
path('first/', views.first_view, name='first_view'),
]
firtst/ 주소로 views 파일의 first_view 함수 실행
- 로컬호스트 주소 : http://127.0.0.1:8000/first
'AI 웹 개발 과정 > 파이썬 장고 실무 기초' 카테고리의 다른 글
06. 3주차 실습 및 숙제 - 게시글 쓰기, 읽기, 삭제 / 댓글 추가 (0) | 2022.05.30 |
---|---|
05. 3주차 이론 - (0) | 2022.05.30 |
04. 2주차 실습 및 숙제 - (1) | 2022.05.27 |
03. 2주차 이론 - Django APP / SQLite3 / ORM / model 추가 / admin (0) | 2022.05.27 |
02. 1주차 숙제 - def / for문 / if문 / class (0) | 2022.05.27 |