Project1 - Wikipedia 및 Django 첫 번째 보기
Google 검색 프런트 엔드를 만드는 HTML 및 CSS 프로젝트0 이후 프로젝트1은 Django를 사용하여 Wikipedia와 같은 온라인 백과사전 백엔드를 설계하는 것입니다.
▶️ 배경
The first impression on Django is surprisingly not as bad as I would have thought. I have used NodeJS and ReactJS before and frankly did had some skepticism towards the ease of use of Django.
To my pleasant surprise, aside from a little getting used to Django isn't actually that convoluted. To be fair, I am used to using Python as that is my "day job" language. And I have to add on that the documentation of Django feels overwhelming with a lot of features.
▶️ 프로젝트1에 뛰어들기
A little background before going into details of the 7 specifications required to complete this Wikipedia-like online encyclopedia project. The wiki pages are organized as individual markdown files with its filename as its title. Below is the directory overview:녹색으로 표시된 entry.html 및 notfound.html을 제외하고 위에 표시된 모든 파일이 제공됩니다. 이 GIF는 내가 지금까지 수행한 작업을 요약한 것입니다.
즉, 다음과 같은 처음 두 가지 사양을 수행했습니다.
/wiki/TITLE
, 여기서 TITLE
는 백과사전 항목의 제목이며 해당 백과사전 항목의 내용을 표시하는 페이지를 렌더링해야 합니다.index.html
를 통해 단순히 백과사전의 모든 페이지 이름을 나열하는 대신 사용자가 항목 이름을 클릭하면 해당 항목 페이지로 바로 이동할 수 있습니다. 1️⃣ 첫 번째 사양
In order to display the correct entry when /wiki/TITLE
is requested:
-
views.py
needs to handle the request -
urls.py
of the encyclopedia app need to route to the correct function in theviews.py
백과사전/views.py
Here, the markdown2 python package 은entry.html
로 렌더링되는 마크다운 위키 항목을 변환하는 데 사용됩니다.# encyclopedia/views.py
import markdown2
# ...
def topic(request, title):
mdStr = util.get_entry(title)
if mdStr:
html = markdown2.markdown(mdStr)
return render(request, "encyclopedia/entry.html", {
"title": title,
"content": html
})
else:
return render(request, "encyclopedia/notfound.html", {
"message": f"Error: Wiki page titled '{title}' not found"
})
# ...
백과사전/urls.py
# encyclopedia/urls.py
# ...
urlpatterns = [
# ...
path("wiki/<str:title>/", views.topic, name="topic"),
# ...
]
2️⃣ 2차 사양
The second specification is much more straight forward, this documentation example Django는topic
에서 지정한 urls.py
경로를 자동으로 사용하는 앵커 링크를 HTML로 만드는 방법을 보여줍니다.더 나은 설명을 위해 문서의 예를 보여줍니다.
from django.urls import path
from . import views
urlpatterns = [
#...
path('articles/<int:year>/', views.year_archive, name='news-year-archive'),
#...
]
HTML 템플릿 코드에서:
<a href="{% url 'news-year-archive' 2012 %}">2012 Archive</a>
{# Or with the year in a template context variable: #}
<ul>
{% for yearvar in year_list %}
<li><a href="{% url 'news-year-archive' yearvar %}">{{ yearvar }} Archive</a></li>
{% endfor %}
</ul>
이것이 이 게시물의 전부입니다! 이번에는 내가 배운 내용을 더 자세히 공유할 생각을 했기 때문에 시간이 더 깁니다. 도움이 되었기를 바라며 개선 사항이나 다른 언어를 사용하여 얼마나 쉽게 달성할 수 있는지 자유롭게 논의하십시오 😉
Reference
이 문제에 관하여(Project1 - Wikipedia 및 Django 첫 번째 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wizlee/project1-wikipedia-and-first-look-at-django-2ab3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)