Django-1

Stark Ned·2024년 4월 1일

vscode 환경의 django 설치

  • django 라이브러리를 다운

    	pip install django
  • 프로젝트를 생성

    	django-admin startproject "플젝이름"
  • 프로젝트 실행

    python manage.py runserver
    python manage.py runserver 8080 // 포트 번호 지정

  • 내부에 db 생성

    python manage.py migrate

    우리가 페이지를 추가하려면 앱(App)이라는 것을 만들어야 한다.
    위에서 말했듯이, 장고의 모든 프로젝트는 여러개의 HTML과 .py파일로 이루어진 앱들이 여러개 모여서 만들어진다.

    python manage.py startapp "APP이름"

    앱을 만들었으면 프로젝트에서 사용할 수 있도록 등록을 해야한다.
    "플젝이름"/settings.py의 약 40번째 줄인 INSTALLED_APPS에 아래와 같이 추가해준다.

    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '"APP이름"',
    ]

    "플젝이름"/main/templates/main폴더를 하나 만들어,
    그 안에 index.html파일을 만들어주자.

    <!DOCTYPE html>
    <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
          장고 첫페이지!
      </body>
    main/views.py파일을 열어 다음 코드를 추가해준다.
    from django.shortcuts import render
    # Create your views here.
    
    def index(request):
        return render(request,'main/index.html')    
        

    이제 마지막으로 우리의 view와 url을 연결만 해주면 된다.
    main/urls.py파일을 하나 새로 만들어 아래의 코드를 추가해준다.

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]

    이 앱의 url과 프로젝트의 url을 연결해주자 "플젝이름"/urls.py에 들어가서 아래와 같이 바꿔준다.

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('main.urls')),
    ]

    그러면 끝이 났다. 터미널에 아까전에 서버를 호스팅하는데 사용했던
    명령어를 입력해 우리가 만든 페이지를 호스팅해보자.

    $ python manage.py runserver        

    글을 작성하며 참고할 만한 링크 참조
    https://wikidocs.net/91402

sqlite 사용법

  • 먼저 vscode 플러그인 설치

  • 설치가 완료되면 아래에 SQLITE EXPLORER 목록이 생긴다 .

  • 테이블 목록 확인

  • 테이블 확인

  • sql 실행

django 설치 후 Server 개발 준비

  • URL 매핑을 추가하기 위해 config/urls.py 파일을 다음과 같이 수정하자.
	[파일이름: projects/mysite/config/urls.py]

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

    from pybo import views

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('pybo/', views.index),
    ]
  • pybo/ URL이 요청되면 views.index를 호출하라는 매핑을 urlpatterns에 추가하였다. views.index는 views.py 파일의 index 함수를 의미한다.

  • urlpatterns에서 실제 URL은 http://localhost:8000/pybo 이지만 호스트명과 포트가 생략된 pybo/로 매핑해야 한다. 왜냐하면 호스트(예:localhost)와 포트(예:8000)는 서버가 어떤 환경에서 실행되는지에 따라 변하기 때문이다.

  • 또 한가지 pybo/ 를 pybo라고 하지 않고 뒤에 슬래시(/)를 하나 더 붙여 주었다. 이렇게 뒤에 슬래시를 붙여주면 브라우저 주소창에 http://localhost:8000/pybo 라고 입력해도 자동으로 http://localhost:8000/pybo/ 처럼 변환된다. 이렇게 되는 이유는 URL을 정규화하는 장고의 기능 때문이다. 특별한 경우가 아니라면 URL 매핑시 항상 끝에 슬래시를 붙여 주도록 하자.

그렇다면 이제 pybo/views.py 파일에 index 함수를 추가해야 할 것이다. 다음과 같이 추가해 보자.

[파일이름: projects/mysite/pybo/views.py]

from django.http import HttpResponse


def index(request):
    return HttpResponse("안녕하세요 pybo에 오신것을 환영합니다.")
    

장고 개발 흐름 정리

  1. 브라우저에서 로컬 서버로 http://localhost:8000/pybo 페이지를 요청하면
  2. urls.py 파일에서 /pybo URL 매핑을 확인하여 views.py 파일의 index 함수를 호출하고
  3. 호출한 결과를 브라우저에 반영한다.
profile
Escape

0개의 댓글