django 01

Grace Goh·2022년 9월 26일
0

Django

목록 보기
1/32

Python interpreter
우리가 적은 언어를 컴퓨터 언어로 번역

Virtual Environment
각 프로젝트마다 환경을 다르게 해주는 파이썬만의 가상환경. 프로젝트 폴더마다 환경을 만들어준다.

Python의 Web Framework

웹서비스 개발시 필요한 다양한 기능들이 미리 제작돼 있다. (Frame) 결과물을 일정하게 만들 수 있도록 도와준다.

  • Flask Pyramid 최소한의 기능을 제공

  • Django 많은 기능을 제공

    • 데이터베이스, 로그인, 관리자 툴, 패스워드 암호화
    • 커뮤니티가 크고 문서화가 잘 되어 있다.

MVT Pattern

django는 어떻게 동작하고, 어떤 흐름으로 우리에게 웹서비스를 제공하는가?
User -> URL Conf -> View -> Model(ORM) -> DB

User <- (Template) <- View <- Model(ORM) <-

Model(ORM)DB와 소통하는 방식. DB와 연결되어 있다. 이 Model이 DB의 형태를 나타내고 있다.
View실질적으로 프로그램이 동작하는 부분. 어떤 기능을 만들고 싶다면 대부분 View에서 작업한다.
Template사용자에게 보이는 부분. 사용자가 화면을 본다면 template 안에서 html을 전달하는 것.

ORM

DB와 소통하는 방식. DB의 형태를 클래스로 나타내준다. DB를 다루기 위해 사용되는 '쿼리' 부분을 작성하지 않아도 데이터를 가져오고 저장, 삭제, 수정할 수 있게 도와준다. 많은 기능을 쉽게 제공한다.

ex 글쓰기 모델 예제 (ORM 대표하는 class 형식)

class Post:
    id = IntegerField()
    title = CharField()
    author = CharField()
    context = TextField()


MySpartaSNS 폴더 : 핵심적인 세팅을 담당한다. 여러 가지 파일이 만들어져 있다.

대표적인 2가지

settings.py django 전체의 환경설정
urls.py django 전체의 api를 담당하는 부분. 접속할 수 있는 url 주소를 만들어주고 관리하는 공간.

django 실행하기

재생 버튼(▶) 클릭

주소 클릭

django 기본 제공 화면이 뜬다.

(대표 폴더) 오른쪽 클릭 > New > Python 파일 > views.py

MTV에서 중요한 역할을 담당하는 View

views.py 코드스니펫

from django.http import HttpResponse # () 내용 전달


def base_response(request): 
    return HttpResponse("안녕하세요! 대랑이 여자칭구입니다!")
    
# base_response() 함수가 동작하면 HttpResponse(내용)를 화면에 출력해준다.

base_response() 함수를 어디로 접근해야 나올 수 있는지?
-> url과 연결

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로 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 작업.

views.py

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

urls.py 하단에 1줄 추가

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

profile
Español, Inglés, Coreano y Python

0개의 댓글