데이터 생성 및 템플릿 미세 조정
모든 지식 조각은 시스템 내에서 단일하고 명확하며 권위 있는 표현을 가져야 합니다.
이를 구현하기 위해 템플릿 디렉토리 내에 부분 디렉토리를 만들고 탐색 모음과 바닥글을 분리합니다. 템플릿 디렉토리는 이제 다음과 같습니다.
현재 템플릿 디렉토리
바닥글은 다음과 같아야 합니다.
# templates/partials/_footer.html
<footer class="py-4 bg-primary text-white-50">
<div class="container text-center">
<small>
Copyright ©
<a class="text-light" href="https://vgreyes.com">
Heisenberg 2020
</a>
</small>
</div>
</footer>
그리고 navbar에는 다음이 있습니다.
# tempaltes/partials/_navbar.html
<div class="mb-1">
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href="{% url 'blog' %}">
VGReyes
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<a href="{% url 'blog' %}"><span class="navbar-toggler-icon"></a></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto">
<li {% if request.resolver_match.url_name == 'blog' %}class="nav-item active"{% else %}class="nav-item"{% endif %}>
<a class="nav-link" href="{% url 'blog' %}">Home</a>
</li>
<li {% if request.resolver_match.url_name == 'about' %}class="nav-item active"{% else %}class="nav-item"{% endif %}>
<a class="nav-link" href="{% url 'about' %}">About</a>
</li>
<li {% if request.resolver_match.url_name == 'portfolio' %}class="nav-item active"{% else %}class="nav-item"{% endif %}>
<a class="nav-link" href="{% url 'portfolio' %}">Projects</a>
</li>
<li {% if request.resolver_match.url_name == 'contact' %}class="nav-item active"{% else %}class="nav-item"{% endif %}>
<a class="nav-link" href="{% url 'contact' %}">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
Django 파일을 밑줄 "_"로 시작하여 파일 이름이 다른 것 외에는 다른 html 파일과 다른 점을 표시하는 것이 좋습니다. 또한 목록 태그 안에 Django 템플릿 언어로 래핑된 if-else 태그가 있음을 알 수 있습니다. 이것은 요청이 urls.py 파일에 이름이 지정된 URL 이름과 일치할 때 활성 부트스트랩 클래스로 변환됩니다.
이제 셸로 이동하여 데이터를 생성해 보겠습니다. 이것을 실행하십시오:
$ python manage.py shell
앱의 블로그 게시물을 만든 다음 프로젝트를 만들어 보겠습니다.
Python 3.8.2 (default, Jun 16 2020, 15:51:47)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.16.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from blog_tutorial.main.models import Post
In [2]: from django.utils import timezone
In [3]: blog_post = Post.objects.create(title="First blog in Django", slug="first-blog-in-django"
...: , overview="Echo park squid jean shorts kitsch, af vaporware celiac. Fixie tbh meggings l
...: isticle distillery.", body="Listicle ramps you probably haven't heard of them tousled iro
...: ny etsy chia put a bird on it shaman. Gentrify glossier sustainable man braid. Squid clou
...: d bread biodiesel cliche chambray wolf marfa etsy austin jean shorts.", image="default.pn
...: g", created_on="2020-07-27", updated_on="", categories="blog", status="published")
In [4]: blog_post = Post.objects.create(title="Second blog in Django", slug="second-blog-in-djan
...: go", overview="Hexagon portland pok pok, succulents put a bird on it cornhole art party
...: banjo gentrify kitsch", body="iPhone air plant. Scenester woke snackwave butcher tattooe
...: d pug man bun hammock umami poke skateboard truffaut pour-over hell of. Hoodie food truc
...: k crucifix squid. Chicharrones skateboard paleo freegan unicorn lomo put a bird on it.",
...: image="default.png", created_on=timezone.now(), updated_on=timezone.now(), status="publ
...: ished")
In [5]: blog_post = Post.objects.create(title="Third blog in Django", slug="third-blog-in-django
...: ", overview="Humblebrag cronut cloud bread. YOLO beard seitan", body="Tumeric hammock ad
...: aptogen letterpress deep v. Small batch migas pickled craft beer bitters listicle shaman
...: iPhone live-edge af fingerstache.", image="default.png", created_on=timezone.now(), upd
...: ated_on=timezone.now(), status="published")
In [6]: blog_post = Post.objects.create(title="Woke roof party beard", slug="woke-roof-party-bea
...: rd", overview="humblebrag cronut cloud bread. YOLO beard seitan", body="Tumeric hammock
...: adaptogen letterpress deep v. Small batch migas pickled craft beer bitters listicle sham
...: an iPhone live-edge af fingerstache. Pinterest waistcoat bitters everyday carry quinoa",
...: image="default.png", created_on=timezone.now(), updated_on=timezone.now(), status="publ
...: ished")
개체가 생성되었는지 확인하기 위해 Post 개체에 대한 blog_posts 변수를 만듭니다.
In [7]: blog_posts = Post.objects.all()
In [8]: print(blog_posts)
<QuerySet [<Post: First blog in Django>, <Post: Second blog in Django>, <Post: Third blog in Django>, <Post: Woke roof party beard>]>
Let's now create the Category and Project objects
In [9]: from blog_tutorial.main.models import Category
In [10]: blog_category = Category.objects.create(title="blog", slug="blog")
In [11]: blog_category = Category.objects.create(title="python", slug="python")
In [12]: blog_category = Category.objects.create(title="django", slug="django")
In [13]: blog_category = Category.objects.create(title="learnetto", slug="learnetto")
In [14]: from blog_tutorial.main.models import Project
In [15]: project = Project.objects.create(title="Acme", slug="acme", image="default.png", live_si
...: te="www.example.com", github_link="https://github.com/acme", description="A site for Acm
...: e")
In [16]: project = Project.objects.create(title="Learnetto", slug="learnetto", image="default.png
...: ", live_site="www.learnetto.com", github_link="https://github.com/learnetto", descriptio
...: n="A web app for Learnetto.")
In [17]: project = Project.objects.create(title="ICVN Tech Studio", slug="icvn-tech-studio", imag
...: e="default.png", live_site="www.icvntechstudio.co", github_link="https://github.com/icvn
...: techstudio", description="A static site for ICVN Tech Studio")
In [18]: blog_cat = Category.objects.all()
In [19]: project_list = Projects.objects.all()
In [20]: project_list = Project.objects.all()
In [21]: print(blog_cat)
<QuerySet [<Category: blog>, <Category: python>, <Category: django>, <Category: learnetto>]>
In [22]: print(project_list)
<QuerySet [<Project: Acme>, <Project: Learnetto>, <Project: ICVN Tech Studio>]>
이제 데이터를 생성했습니다. 템플릿에 표시해 보겠습니다.
Reference
이 문제에 관하여(데이터 생성 및 템플릿 미세 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/highcenburg/creating-the-data-and-fine-tuning-the-templates-46a7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)