python

Django 시작하기

class="song" 2024. 2. 5.
728x90

사용환경

mac m1 pro

 

설치하기

1. 가상환경 생성

conda create -n 가상환경이름 python=파이썬버전

 

2. 가상환경 진입

conda activate 가상환경이름

 

3. 커널생성

python -m ipykernel install --user --name 가상환경이름 --display-name 커널이름

 

4. 기본 패키지 설치

pip install ipython jupyter matplotlib pandas xlrd seaborn scikit-learn openpyxl

 

5. 장고 설치

pip install django

 

 

서버구축

1. 원하는 위치에 폴더생성

 

2. 프로젝트 생성

django-admin startproject config .

 

 

- 서버와 환경설정 폴더를 config라는 이름으로 생성 (이름은 원하는 이름으로)

 

- 마지막 점은 config 한 칸 띄우기

 

- manage.py : 서버시작하는 파일

 

 

 

 

3. 서버 실행 명령문

python manage.py runserver

- 터미널에서 작성된 (http://127.0.0.1:8000/)를 컨트롤 + 클릭하면 해당서버의 웹페이지가 열림

 

 

4. visual code 접속 및 가상환경 확인

 - vs code툴을 열고, 생성한 폴더 오픈

 - 생성한 가상환경이 맞는지 체크 후 진행

 

 

5.  setting.py 열기

 - 서버호스트 설정

 

- template 폴더 설정

 

 

 

- 언어 및 시간 설정

 

 

- static 폴더 설정

 

 

settings.py파일을 설정했다면 이제

파일별 역할을 숙지하자

 

urls.py는 해당 url을 정의하는 파일

views.py는 데이터를 처리하는 로직인 view 메서드를 정의하는 파일

두 가지를 구분하자

 

 

6. 기능별로 관리

웹 사이트 만들기

가상환경 진입 후,

python manage.py startapp firstapp

firstapp은 프로그램이름 (사용자지정)

 

 - 기능별로 파일을 관리하기 위해 firstapp이라는 이름으로 폴더를 생성

 - app앞에 붙은 단어는 작성자가 설정하자

 

여기서부터 views.py파일을 관리하게 된다.

기능별로 폴더나 파일을 생성하고 함수나 클래스등을 정의해 둔다.

 

view에서는 위의 폴더나 파일을 import 하여 함수나 클래스를 불러서 사용하게 된다.

 

예시를 보자

def getView() :
    return "test"

 

 

ml_view라는 파일을 생성한 후 위의 함수를 생성했다.

테스트를 위한 함수로 test라는 텍스트를 리턴한다.

 

이것을 views.py파일에서 불러들인다.

from firstapp.ml_view import ml_view

firstapp안에 있는 / ml_view 폴더에 있는 / ml_view파일을 import 하였다.

 

그리고 난 후 views.py파일에 함수를 생성한다.

### http://127.0.0.1:8000/first/ml.view/
def ml_View(request) :
    ### ml_view() 호출
    rs_data = ml_view.getView()
    
    return render(
        request,
        "firstapp/ml_view/ml_view.html",
        {"rs_data" : rs_data}
    )

rs_data라는 변수에 ml_view파일에 있는 getView() 함수를 할당하였다.

 

return에는 render라는 함수를 사용하게 되는데,

render함수는 template을 호출하는 함수이다.

 

render(request, template_name, context=None, content_type=None, status=None, using=None)

 

render 함수의 매개변수 정리

 

requset : 요청을 response 하기 위해 필수적으로 사용

 

template_name : 쉽게 html이름을 넣는다고 생각 (필수)

 

context : view에서 사용하는 변수를 html에 넘겨준다,

              : {key : value}의 형태로 사용한다.

 

context_type: type을 정의한다. 기본값은 text/html

 

status : status code (기본값 200)

 

using : 템플릿 엔진 사용을 위한 이름

 

필수적으로 넘겨야 하는 값은 request와 template_name이다.

context는 {} 이렇게 빈값을 넘겨주자

 

나머지는 생략가능

 

 

template , static 폴더 관리

 

이제 html파일을 관리하는 templates폴더를 생성하자

 - firstapp 아래에 폴더생성

 - 윈도우에서는 templates\firstapp이라는 이름으로 생성

 - 맥에서는 templates/firstapp으로 생성하자 \ 를 텍스트로 인식하는 듯

 

 

기능별로 나누기 위해 templates/firstapp 아래의 임의의 폴더를 생성하고 관리하자

유지보수를 생각하며 코딩하는 습관

 

css, js, img 등은 static폴더에서 관리하게 된다.

static폴더도 template폴더와 같이

static\firstapp 또는 static/firstapp로 생성 후 하위에 css, js, img 등을 관리할 폴더 생성후 사용하자

 

 

html에 이미지 출력하기

html에서 이미지를 출력하기 위해서는 static폴더의 정보를 template에서 확인한다.

{% load static %}

html 태그 위에 위의 코드를 작성한 후 이미지 태그를 사용하여 경로를 지정하면 이미지가 출력된다.

<img src="{% static '/firstapp/images/fig.png' %}" width="300" height="200">

{% static '이미지경로' %}와 같은 패턴으로 사용한다.

 

 

728x90

댓글