이전 블로그에서는 개발 환경을 설정하고 기본적인 Django 프로젝트와 앱을 만들었습니다. 이제 프로젝트 구조, MVT(Model-View-Template) 아키텍처 및 Django 관리 인터페이스를 포함하여 Django의 기본 측면에 대해 더 깊이 알아볼 시간입니다. 이 게시물을 마치면 이러한 개념을 확실하게 이해하고 간단한 블로그 애플리케이션을 만들 준비를 갖추게 됩니다.
이 블로그에서는 프로젝트 구조, MVT 아키텍처, Django 관리 인터페이스 등 Django의 기본 측면을 자세히 살펴보겠습니다.
Django의 프로젝트 구조를 이해하는 것은 코드를 효과적으로 탐색하고 구성하는 데 중요합니다. 새 Django 프로젝트 및 앱을 생성하면 다음 디렉터리 구조가 생성됩니다.
myproject/ manage.py myproject/ __init__.py settings.py urls.py wsgi.py asgi.py blog/ __init__.py admin.py apps.py models.py tests.py views.py migrations/
Django는 MVC 패턴의 변형인 MVT(Model-View-Template) 아키텍처를 따릅니다. 이 아키텍처는 문제를 깔끔하게 분리하여 코드를 더욱 체계화하고 유지 관리하기 쉽게 만듭니다.
모델은 데이터베이스 테이블의 구조를 정의합니다. 각 모델은 django.db.models.Model.
를 서브클래스하는 Python 클래스입니다.
# blog/models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() published_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
뷰는 애플리케이션의 논리와 데이터 처리를 처리합니다. 요청을 받고, 모델과 상호작용하고, 응답을 반환합니다.
# blog/views.py from django.shortcuts import render from .models import Post def home(request): posts = Post.objects.all() return render(request, 'blog/home.html', {'posts': posts})
템플릿은 웹페이지의 HTML 구조와 표시를 정의합니다. Django 템플릿 태그와 필터를 사용하여 동적 콘텐츠를 포함할 수 있습니다.
Blog Home Blog Posts
{% for post in posts %}{{ post.title }}
{{ post.content }}
Published on: {{ post.published_date }}
{% endfor %}
URL을 뷰에 매핑하려면 urls.py에서 URL 패턴을 구성해야 합니다.
# myproject/urls.py from django.contrib import admin from django.urls import path from blog import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.home, name='home'), ]
Django 관리 인터페이스는 추가 코드를 작성하지 않고도 애플리케이션의 데이터를 관리할 수 있는 강력한 도구입니다. 모델에 대한 사용자 친화적인 인터페이스를 자동으로 생성합니다.
# blog/admin.py from django.contrib import admin from .models import Post admin.site.register(Post)
python manage.py createsuperuser
Django에서 애플리케이션을 작성하는 과정에 대한 개요입니다. 간단한 블로그 애플리케이션을 만들기 위해 배운 내용을 적용할 시리즈의 다음 부분을 계속 지켜봐 주시기 바랍니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3