Python interpreter
우리가 적은 언어를 컴퓨터 언어로 번역
Virtual Environment
각 프로젝트마다 환경을 다르게 해주는 파이썬만의 가상환경. 프로젝트 폴더마다 환경을 만들어준다.
웹서비스 개발시 필요한 다양한 기능들이 미리 제작돼 있다. (Frame) 결과물을 일정하게 만들 수 있도록 도와준다.
Flask
Pyramid
최소한의 기능을 제공
Django
많은 기능을 제공
django는 어떻게 동작하고, 어떤 흐름으로 우리에게 웹서비스를 제공하는가?
User -> URL Conf -> View
-> Model(ORM)
-> DB
User <- (Template)
<- View <- Model(ORM) <-
Model(ORM) | DB와 소통하는 방식. DB와 연결되어 있다. 이 Model이 DB의 형태를 나타내고 있다. |
View | 실질적으로 프로그램이 동작하는 부분. 어떤 기능을 만들고 싶다면 대부분 View에서 작업한다. |
Template | 사용자에게 보이는 부분. 사용자가 화면을 본다면 template 안에서 html을 전달하는 것. |
DB와 소통하는 방식. DB의 형태를 클래스로 나타내준다. DB를 다루기 위해 사용되는 '쿼리' 부분을 작성하지 않아도 데이터를 가져오고 저장, 삭제, 수정할 수 있게 도와준다. 많은 기능을 쉽게 제공한다.
ex
글쓰기 모델 예제 (ORM 대표하는 class 형식)
class Post:
id = IntegerField()
title = CharField()
author = CharField()
context = TextField()
MySpartaSNS
폴더 : 핵심적인 세팅을 담당한다. 여러 가지 파일이 만들어져 있다.
settings.py
django 전체의 환경설정
urls.py
django 전체의 api를 담당하는 부분. 접속할 수 있는 url
주소를 만들어주고 관리하는 공간.
재생 버튼(▶) 클릭
주소 클릭
django 기본 제공 화면이 뜬다.
(대표 폴더) 오른쪽 클릭 > New > Python 파일 > views.py
MTV에서 중요한 역할을 담당하는 View
from django.http import HttpResponse # () 내용 전달
def base_response(request):
return HttpResponse("안녕하세요! 대랑이 여자칭구입니다!")
# base_response() 함수가 동작하면 HttpResponse(내용)를 화면에 출력해준다.
base_response()
함수를 어디로 접근해야 나올 수 있는지?
-> url
과 연결
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로 base_response라는 함수와 연결해준 것.
]
test로 접근 > http://127.0.0.1:8000/test/
templates 오른쪽 클릭 > new > html 파일 > my_test.html
페이지 생성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>기자 별 뉴스</title>
</head>
<body>
<h4>rafael@django</h4>
<h4>안녕하세요. 대랑이입니다.</h4>
</body>
</html>
이 페이지를 띄워줄 url, view 작업.
from django.http import HttpResponse
from django.shortcuts import render # render: html 보여주는 역할
def base_response(request):
return HttpResponse("안녕하세요! 대랑이 여자칭구입니다!")
def first_view(request): # first_view() 함수는 'my_test.html' 보여주는 역할
return render(request, 'my_test.html')
# 함수를 만들었으니 url과 연동해야. > 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'), # 마지막 콤마까지.
]
first로 접속하기 > http://127.0.0.1:8000/first