>  기사  >  백엔드 개발  >  Django 프로그래밍 가이드: Python 웹 프로그래밍을 마스터하는 길

Django 프로그래밍 가이드: Python 웹 프로그래밍을 마스터하는 길

PHPz
PHPz원래의
2023-06-23 13:32:20948검색

Django는 Python 언어 기반의 웹 프레임워크로 효율적이고 안전한 웹 애플리케이션을 구축하기 위한 강력하고 사용하기 쉬운 도구입니다. Django는 MVC(Model-View-Controller) 패턴을 기반으로 하며 사전 정의된 구성 요소와 디자인 패턴을 제공하여 웹 개발을 보다 효율적이고 제어 가능하게 만듭니다. 이 프레임워크는 일부 유명 웹사이트 및 웹 애플리케이션을 포함하여 전 세계적으로 널리 사용됩니다. Django 프로그래밍을 배우고 있다면 이 문서에서는 이 강력한 도구를 더 잘 이해하고 익히는 데 도움이 되는 몇 가지 유용한 가이드와 팁을 제공합니다.

1. Django 설치 및 설정

Django를 사용하기 전에 Python 환경과 pip를 설치했는지 확인해야 합니다. 다음으로 pip를 사용하여 Django를 설치할 수 있습니다. 터미널(또는 콘솔)에 다음 명령을 입력하세요.

pip install Django

설치가 완료되면 다음 명령을 입력하여 Django 버전을 확인할 수 있습니다.

django-admin --version

설치에 성공하면 Django 버전 번호가 표시됩니다. .

다음으로 Django 프로젝트를 생성하고 가상 환경을 설정해야 합니다. 가상 환경은 프로젝트에 필요한 종속성을 서로 간섭하지 않도록 격리합니다. 다음 명령을 사용할 수 있습니다.

mkdir myproject
cd myproject
python -m venv myprojectenv

여기서 "myproject"는 프로젝트 이름이고 "myprojectenv"는 가상 환경 이름입니다. 다음으로 가상 환경을 활성화해야 합니다. 다음 명령을 사용하세요.

source myprojectenv/bin/activate

터미널의 명령 프롬프트 앞에 가상 환경 이름이 표시되어 활성화에 성공했음을 나타냅니다. 이제 가상 환경에서 Django 명령을 실행할 수 있습니다.

2. Django 애플리케이션 만들기

Django 애플리케이션을 만들기 전에 Django 프로젝트 디렉터리를 입력했는지 확인해야 합니다. 다음 명령을 사용하여 새 Django 애플리케이션을 생성할 수 있습니다:

python manage.py startapp myapp

여기서 "myapp"은 애플리케이션의 이름이며 "myproject" 프로젝트 내에 폴더가 생성됩니다. 이 폴더에서는 애플리케이션 코드를 작성하고, 데이터베이스 모델을 정의하고, 뷰 및 라우팅을 처리하는 등의 작업을 할 수 있습니다.

애플리케이션을 만든 후에는 이를 Django 프로젝트 구성에 추가해야 합니다. "myproject" 디렉터리에서 "settings.py" 파일을 열고 "INSTALLED_APPS" 목록에 애플리케이션 이름을 추가합니다.

INSTALLED_APPS = [
    # ...
    'myapp',
]

3. 데이터베이스 모델 정의

Django는 내장 ORM(Object Relational Mapping) 프레임워크를 제공합니다. , Python 개체를 데이터베이스 테이블에 매핑할 수 있습니다. 데이터베이스 모델을 정의하려면 애플리케이션 폴더에 "models.py"라는 파일을 생성해야 합니다. 이 파일에서 다음과 같이 데이터베이스 테이블과 속성을 정의할 수 있습니다.

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()

    def __str__(self):
        return self.name

class Book(models.Model):
    name = models.CharField(max_length=200)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

위 모델 정의에서 "Author"와 "Book"은 각각 데이터베이스 테이블의 이름입니다. 각 모델 정의는 "models.Model"을 상속하고 해당 속성을 정의합니다. 이 예에서 "Author"에는 "name" 및 "email" 속성이 있고 "Book"에는 "name" 및 "author" 속성이 있습니다.

4. 라우팅 및 보기

Django에서는 특정 URL 요청의 논리를 식별하는 데 경로 확인이 사용됩니다. 애플리케이션 폴더에 "urls.py"라는 파일을 생성하고 다음과 같이 경로를 정의해야 합니다.

from django.urls import path
from . import views

urlpatterns = [
    path('books/', views.book_list, name='book_list'),
    path('books/<int:pk>/', views.book_detail, name='book_detail'),
]

위의 경로 정의에서 "path" 함수는 URL 요청의 경로를 결정하고 이름을 지정합니다. 보기 기능의 일부이며 들어오는 요청에 대해 보기 기능이 실행할 논리를 정의합니다. 이 예에서 "book_list" 및 "book_detail"은 사용자 정의 보기 기능이며 그에 따라 애플리케이션 폴더에 정의되어야 합니다.

5. 템플릿 및 정적 파일

Django는 애플리케이션 로직과 프런트엔드 디스플레이를 분리하는 데 사용할 수 있는 내장 템플릿 지원을 제공합니다. Django가 템플릿 파일을 찾고 렌더링할 애플리케이션 폴더 내에 "templates"라는 폴더를 만듭니다. 보기 기능에서 템플릿 엔진을 사용하여 아래와 같이 템플릿을 렌더링할 수 있습니다.

from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.objects.all()
    return render(request, 'books/book_list.html', {'books': books})

위의 예에서는 데이터베이스에서 모든 책 기록을 검색하고 이를 컨텍스트 변수로 렌더링된 템플릿에 전달합니다. "render" 함수에서는 템플릿 이름을 지정하고 사전에 컨텍스트 변수를 포함합니다.

Django에서 정적 파일(예: CSS, JavaScript 및 이미지)은 일반적으로 "static"이라는 별도의 폴더에 저장됩니다. 애플리케이션 폴더 내에 이 폴더를 생성하고 그 안에 정적 파일을 배치할 수 있습니다. 템플릿에서 다음 코드를 사용하여 정적 파일을 참조할 수 있습니다.

<link rel="stylesheet" href="{% static 'css/styles.css' %}">

6. 관리 페이지

Django는 애플리케이션 데이터 관리를 위한 강력한 관리 인터페이스를 제공합니다. 관리자 인터페이스를 사용하면 코드를 작성하지 않고도 데이터를 추가, 편집 및 삭제할 수 있습니다. 관리 인터페이스를 활성화하려면 "myapp/admin.py"에 모델을 등록해야 합니다.

from django.contrib import admin
from .models import Author, Book

admin.site.register(Author)
admin.site.register(Book)

7. 요약

이 문서에서는 웹 애플리케이션 개발을 시작하는 데 도움이 되는 Django 프로그래밍의 기본 지식과 기술을 제공합니다. Django는 효율적이고 안전한 웹 애플리케이션을 구축하기 위한 강력한 도구일 뿐만 아니라 애플리케이션을 빠르게 개발하는 데 도움이 되는 다양한 내장 기능과 플러그인도 제공합니다. 초보자이든 숙련된 개발자이든 Django 프로그래밍을 마스터하면 더 많은 기회와 도전을 얻을 수 있습니다.

위 내용은 Django 프로그래밍 가이드: Python 웹 프로그래밍을 마스터하는 길의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.