hoon

[프로그래머스 인공지능 데브코스 5th] django? 본문

인공지능 데브코드 5기

[프로그래머스 인공지능 데브코스 5th] django?

hoon123 2023. 4. 20. 16:48

diango vs. flask


django -> 많이 내장되어 있음

flask -> 마이크로

pip install django # 장고 설치
django-admin startproject <proj_name> # 장고 시작 시 프로젝트 만들기
cd <proj_name>
python manage.py runserver 

settings.py

ALLOWED_HOSTS = [] # 접근 가능한 호스트
...
INSTALLED_APPS =[] #어떤걸 설치했냐
MIDDLEWARE = [] # 어떤걸 설치했냐
ROOT_URLCONF = 'webproj.urls' # url 관리를 어디서 할건지를 담당
TEMPLATES = [] # 실제보는 화면의 요소들에 관한 부분
WSGI_APPLICATION = 'webproj.wsgi.application' # 파이썬에서 웹서버와 통신하는 것이 어떤것인지 담당
DATABASES = {} #프로젝트 상에서 저장하는 db
AUTH_PASSWORD_VALIDATORS = [] # 관리자 pw 관리
STATIC_URL = 'static/' # 정적파일 경로

urls.py

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

urlpatterns = [
    path('admin/', admin.site.urls), #해당  url에 대한 요청이 들어오면 해당 요청에 대해 반응
]

django App 만들기

<proj_name>$ django-admin startapp <app_name>
# 프로젝트 폴더 안에서 진행

django의 MVT Pattern

user <--> Django

​ |

​ URL --- View --- Model ------ DB

​ --- Template


view

django는 html에서 template언어를 지원함

#views.py
from django.shortcuts import render, HttpResponse

# Create your views here.
def index(request):
    #return HttpResponse("<h1>Hello World!<h1>")
    name = "jihoon"
    nums = [1,2,3,4,5,6]
    return render(request , 'index.html', {"name" : name,'my_list':nums})
<!DOCTYPE html>
<html>
    <head>
        <title>Python django example</title>
    </head>

    <body>
        <h1>Name: {{ name|upper }}</h1> views.py에서 준 인자와 필터 사용가능 
        {% for element in my_list %} 조건문도 사용가능
            {% if not element|divisibleby:"2" %}
            <p>{{element}}</p>
            {% endif %}
        {% endfor %}
    </body>
</html>

Model

  • 데이터 베이스(구조화!)

  • Relational DB -> table 형태로 관리하는 것을 의미

  • SQL ex) SELECT * FROM TABLES

  • "ORM" Object -> 객체

python manage.py migrate -> 장고에 반영
먼저 git add 처럼 만들어줘야됨
python manage.py makemigrations homepage
python manage.py migrate
Comments