Skip to content

Commit

Permalink
๋ณต์Šต
Browse files Browse the repository at this point in the history
  • Loading branch information
jimin-kiim committed Jul 14, 2021
1 parent dd46e7b commit dfae829
Show file tree
Hide file tree
Showing 12 changed files with 62 additions and 30 deletions.
5 changes: 4 additions & 1 deletion djangogirls/blog/admin.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# ์žฅ๊ณ ์˜ ๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค์ •, ์•ฑ-๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ ์—ฐ๊ฒฐ.

from django.contrib import admin
# models.py์—์„œ ๋ชจ๋ธ ํด๋ž˜์Šค ๋งŒ๋“ค๊ณ  migrate ํ•˜๊ณ  ๋‚˜์„œ admin.py์— ๋ถˆ๋Ÿฌ์˜ค๊ธฐ.
from .models import Post

admin.site.register(Post)
admin.site.register(Post) # ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ๋งŒ๋“  ๋ชจ๋ธ ๋ณด๋ ค๊ณ  ๋“ฑ๋ก.
4 changes: 2 additions & 2 deletions djangogirls/blog/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from .models import Post


class PostForm(forms.ModelForm): # PostForm์ด ๋งŒ๋“ค ํผ์˜ ์ด๋ฆ„, ์ด ํผ์ด ModelForm์ด๋‹ค.
class PostForm(forms.ModelForm): # PostForm์ด ๋งŒ๋“ค ํผ์˜ ์ด๋ฆ„, ์ด ํผ์ด ModelForm์ด๋‹ค.(์ƒ์†)

class Meta:
model = Post # ์ด ํผ ๋งŒ๋“ค๋ ค๋ฉด ํ•„์š”ํ•œ ๋ชจ๋ธ ๋ฌด์—‡.
model = Post # ์ด ํผ ๋งŒ๋“ค๋ ค๋ฉด Post ๋ชจ๋ธ ํ•„์š”.
fields = ('title', 'text',)
15 changes: 13 additions & 2 deletions djangogirls/blog/models.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
from django.conf import settings
from django.db import models
from django.utils import timezone
# ๋ชจ๋“  ๋ชจ๋ธ ๊ฐ์ฒด๋Š” ์—ฌ๊ธฐ์„œ ์„ ์–ธํ•ด์„œ ๋จ„๋“ ๋‹ค. ๋ชจ๋ธ์ด๋ž€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ.
# ์งˆ๋ฌธ ๋ชจ๋ธ, ๋‹ต๋ณ€ ๋ชจ๋ธ ๋“ฑ ์›ํ•˜๋Š” ํ˜•ํƒœ์˜ ๋ชจ๋ธ์„, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณณ.


# ๋ชจ๋ธ ์ •์˜. ๊ฐ์ฒด ์ •์˜+๋ชจ๋ธ ์ด๋ฆ„+์ƒ์†. models.Model์ƒ์†. ์–˜๋Š” ์žฅ๊ณ  ๋ชจ๋ธ์ด๋‹ค.๋ผ๊ณ  ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ.
class Post(models.Model):
# ์ด ๋ชจ๋ธ์€ ๋ธ”๋กœ๊ทธ ๊ธ€ ๋ชจ๋ธ. ์†์„ฑ์€ ๊ธ€์“ด์ด, ์ œ๋ชฉ, ๋‚ด์šฉ ๋“ฑ.
author = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
# title, text ๋‘˜ ๋‹ค ํ…์ŠคํŠธ ์ž…๋ ฅ์ธ๋ฐ, title์€ ๊ธ€์ž์ˆ˜ ์ œํ•œ์„ ๋„ฃ๊ณ  ์‹ถ๊ณ . text๋Š” ๊ทธ๋ ‡์ง€ ์•Š์œผ๋‹ˆ ๊ฐ๊ฐ ํŠน์„ฑ์— ๋งž๊ฒŒ models.Charfield, models.TextField.
text = models.TextField()
# ์ด๋Ÿฐ ๊ฑธ ํ†ตํ‹€์–ด์„œ ๋ชจ๋ธ ํ•„๋“œ ํƒ€์ž…์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ•„๋“œ๋งˆ๋‹ค ๊ณ ์œ  ์˜ต์…˜ ์กด์žฌ. ๋–„๋งˆ๋‹ค ์•Œ์•„๋ณด๋ฉด์„œ ์ž‘์„ฑ.
created_date = models.DateTimeField(
default=timezone.now)
default=timezone.now) # ๊ฐ’ ์ง€์ • ์•ˆ๋์„ ๋•Œ ์“ฐ์ผ ๋””ํดํŠธ ๊ฐ’ ์ง€์ •.
published_date = models.DateTimeField(
blank=True, null=True)
blank=True, null=True) # blank True๋Š” empty๊ฐ’ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ. ๋””ํดํŠธ๋Š” False. null๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ null ํ—ˆ์šฉ ์—ฌ๋ถ€.

def publish(self):
self.published_date = timezone.now()
self.save()

def __str__(self):
return self.title


# ๋ชจ๋ธ์„ models.py์— ๋งŒ๋“ค์—ˆ์œผ๋ฉด
# ํ„ฐ๋ฏธ๋„์—์„œ migrations, migrate ์‹คํ–‰ํ•ด์„œ ๋งŒ๋“  ๊ฑฐ ์•Œ๋ ค์ฃผ๊ธฐ,
# ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ admin,py์— ๊ฐ€์„œ ๋ชจ๋ธ ํด๋ž˜์Šค ๋“ฑ๋ก
5 changes: 3 additions & 2 deletions djangogirls/blog/templates/blog/base.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{% load static %}
{% load static %}<!---์›นํŽ˜์ด์ง€๋งˆ๋‹ค ๊ณตํ†ต์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” HTML ์ฝ”๋“œ๋ฅผ base template ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ๋”ฐ๋กœ ์ €์žฅ.
๊ทธ๋ฆฌ๊ณ  ๊ฐ ์›นํŽ˜์ด์ง€๋งˆ๋‹ค ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ๋ณ€๊ฒฝ. ์ด ๊ณผ์ •์ด ํ…œํ”Œ๋ฆฟ ํ™•์žฅ.-->
<html>
<head>
<title>Django Girls blog</title>
Expand All @@ -19,7 +20,7 @@ <h1><a href="/">Django Girls Blog</a></h1>
<div class="content container">
<div class="row">
<div class="col-md-8">
{% block content %}
{% block content %}<!--์ด ํŒŒ์ผ์˜ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋“ค์ด ๊ทธ๋Œ€๋กœ ๊ณตํ†ต์ ์œผ๋กœ ์“ฐ์ด๋˜ ์ด ๋ธ”๋Ÿญ ๋ถ€๋ถ„๋งŒ ๊ฐ ํŽ˜์ด์ง€์— ์“ฐ์ธ ์ฝ”๋“œ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒƒ. -->
{% endblock %}
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion djangogirls/blog/templates/blog/post_detail.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% extends 'blog/base.html' %}

<!--์ƒ์„ธํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ.-->
{% block content %}
<div class="post">
{% if post.published_date %}<!--๋‚ด์šฉ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ์“ฐ๋Š” ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ. post์˜ ๊ฒŒ์‹œ์ผ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ-->
Expand Down
2 changes: 1 addition & 1 deletion djangogirls/blog/templates/blog/post_edit.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% extends 'blog/base.html' %}

<!--๊ธ€ ์ˆ˜์ • ํ…œํ”Œ๋ฆฟ-->
{% block content %}
<h1>New post</h1>
<form method="POST" class="post-form">{% csrf_token %}<!--ํผ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ค‘์š”ํ•œ ๋ถ€๋ถ„.
Expand Down
9 changes: 5 additions & 4 deletions djangogirls/blog/templates/blog/post_list.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
{% extends 'blog/base.html' %}

{% block content %}
{% extends 'blog/base.html' %}<!--base์™€ post_list ์—ฐ๊ฒฐ-->
<!--๊ธ€ ๋ชฉ๋ก ํ…œํ”Œ๋ฆฟ-->
{% block content %}<!--ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ.๋‹ค๋ฅธ ๋ถ€๋ถ‘์€ base.html์ด๋ž‘ ๋˜‘๊ฐ™๊ณ  ๋ธ”๋Ÿญ๋ถ€๋ถ„์— ์ด ๋ธ”๋Ÿญ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ.-->
{% for post in posts %}
<div class="post">
<div class="date">
{{ post.published_date }}
</div>
<h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
<h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1><!--pk๋Š” Primary Key. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๊ฐ ๋ ˆ์ฝ”๋“œ ์‹๋ณ„ํ•˜๋Š” ๊ธฐ๋ณธํ‚ค.
๋ ˆ์ฝ”๋“œ๋ž€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ํ•„๋“œ(๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ)๋“ค์˜ ์ง‘ํ•ฉ.ํŠœํ”Œ https://93jpark.tistory.com/23-->
<p>{{ post.text|linebreaksbr }}</p>
</div>
{% endfor %}
Expand Down
15 changes: 10 additions & 5 deletions djangogirls/blog/urls.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
from django.urls import path
from . import views

# urlresolver๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด ๋ชฉ๋ก. ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น์„œ๋ฒ„์— ์š”์ฒญํ•˜๋ฉด ๊ทธ ์š”์ฒญ์„ ์žฅ๊ณ ๋กœ ์ „๋‹ฌ.
# ์žฅ๊ณ  urlresolver๊ฐ€ ๋ฐ›์€ url์„ ์ž์‹ ์ด ๊ฐ–๊ณ  ์žˆ๋Š” ์•„๋ž˜ ํŒจํ„ด ๋ชฉ๋ก๊ณผ ์ผ์ผ์ด ๋น„๊ต.
# ์ผ์น˜ํ•˜๋Š” ๊ฑฐ ์ฐพ์œผ๋ฉด path ํ•จ์ˆ˜ ์ธ์ž๋กœ ์จ์žˆ๋Š” ๋ทฐ ํ•จ์ˆ˜์— ๋„˜๊ฒจ์ค€๋‹ค.
# path ํ•จ์ˆ˜ ํ•„์ˆ˜ ์ธ์ž: route, view, ์„ ํƒ์ธ์ž: kwargs, name
urlpatterns = [
# ''์ด๋ฉด ๋ฃจํŠธ URL. ๋ฃจํŠธ URL ๋“ค์–ด์™”์„ ๋•Œ view.post_list๋ณด์—ฌ์ฃผ๊ธฐ.
path('', views.post_list, name='post_list'),
# url ๋งŒ๋“ค์–ด ์žฅ๊ณ ๊ฐ€ post detail ๋ทฐ๋กœ ๋ณด๋‚ด ๊ฒŒ์‹œ๊ธ€ ๋ณด์ด๊ฒŒ.

# url ๋งŒ๋“ค๊ธฐ. ๋ฃจํŠธ url+ ์ฒซ ๋ฒˆ์งธ ์ธ์ž.
path('post/<int:pk>/', views.post_detail, name='post_detail'),
# ์žฅ๊ณ  ํ•ด๋‹น url๊ณผ ๊ฐ™์€ ์ด ์ค„์„ ์ฐพ์•„๋‚ด๊ณ  post detail ๋ทฐ๋กœ ์š”์ฒญ ๋„˜๊ฒจ์ค€๋‹ค.
# views.post_detail์ด๋ผ๋Š” ๋ทฐ์˜ ์ด๋ฆ„์„ post_detail๋กœ.
# post/ : url์ด post ๋ฌธ์ž๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.
# <int:pk>: ์ •์ˆ˜๊ฐ’์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์ด๋ฅผ pk๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ๋ทฐ๋กœ ์ „์†กํ•œ๋‹ค
# /: ๋‹ค์Œ์— /๊ฐ€ ํ•œ ๋ฒˆ ๋” ์˜จ๋‹ค
# <int:pk>: ์ •์ˆ˜๊ฐ’์ด ์˜ฌ ์ž๋ฆฌ. pk ๋ณ€์ˆ˜๋กœ ๋ทฐ์— ์ „์†กํ•œ๋‹ค.(pk๋Š” ๊ฐ ํŠœํ”Œ์˜ ์‹๋ณ„ํ‚ค.๊ทธ๋Ÿฌ๋‹ˆ ๊ธ€๋งˆ๋‹ค ๊ทธ ๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒƒ. )
path('post/new', views.post_new, name='post_new'),
path('post/<int:pk>/edit/', views.post_edit, name='post_edit'),
# url ๋งŒ๋“ค๊ธฐ. ๋ฃจํŠธ url+ ์ฒซ ๋ฒˆ์งธ ์ธ์ž. ํ•ด๋‹น url์ด ๋“ค์–ด์˜ค๋ฉด ๋‘ ๋ฒˆ์งธ ์ธ์ž ๋ทฐ๋กœ ์ „์†ก.

]
9 changes: 5 additions & 4 deletions djangogirls/blog/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from .models import Post
from .forms import PostForm

# Create your views here.
# ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ์ง ๋„ฃ๋Š” ๊ณณ. ๋ชจ๋ธ์—์„œ ์ •๋ณด ๋ฐ›์•„์˜ค๊ณ  ํ…œํ”Œ๋ฆฟ์— ์ „๋‹ฌ.


def post_new(request):
Expand All @@ -14,9 +14,9 @@ def post_new(request):
post = form.save(commit=False) # ๋ฐ”๋กœ ์ €์žฅํ•˜์ง€ ๋ง๊ณ 
post.author = request.user # ์ž‘์„ฑ์ž ์ถ”๊ฐ€
post.published_date = timezone.now()
post.save() # ๋ณ€๊ฒฝ์‚ฌํ•ญ ์œ ์ง€
post.save() # ๋ณ€๊ฒฝ์‚ฌํ•ญ ์œ ์ง€ํ•˜๊ณ  ์ด ์ฐจ๋ก€์—์„œ ์ƒˆ ๋ธ”๋กœ๊ทธ ๊ธ€ ์ƒ์„ฑ.
return redirect('post_detail', pk=post.pk)
#redirect(to, permanent=False, *args, **kwargs)
# redirect(to, permanent=False, *args, **kwargs) post_detail ๋ทฐ๋กœ ๊ฐ€๊ธฐ. ์–ด๋Š ๊ธ€์ธ์ง€ ์•Œ๋ ค๋ฉด pk๋ณ€์ˆ˜ ํ•„์š”ํ•˜๋‹ˆ๊นŒ ์ด ๊ฐ’ ๊ฐ–๊ณ ์„œ.
else:
form = PostForm()
return render(request, 'blog/post_edit.html', {'form': form})
Expand All @@ -26,12 +26,13 @@ def post_new(request):


def post_list(request):
posts = Post.objects.filter(
posts = Post.objects.filter( # ๋ณ€์ˆ˜. ์ด ๋ณ€์ˆ˜๋ฅผ ์ฟผ๋ฆฌ์…‹์˜ ์ด๋ฆ„. ์ด ์ฟผ๋ฆฌ์…‹์„ ์ด์ œ ๋ฐ‘์— ์ค„์—์„œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ณด๋‚ธ๋‹ค.
published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})


def post_detail(request, pk):
# ๊ทธ๋ƒฅ Post.objects.get(pk=pk)๋ผ๊ณ  ํ•˜๋ฉด, ์˜ค๋ฅ˜๋‚˜์™”์„ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค. ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ™์€ ๋Š๋‚Œ์œผ๋กœ ์ด์— ๋Œ€๋น„ํ•ด 404 ๋‚˜์˜ค๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ.
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})

Expand Down
5 changes: 3 additions & 2 deletions djangogirls/manage.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
# ๋‹ค๋ฅธ ์„ค์น˜์—†์ด ์ปดํ“จํ„ฐ์—์„œ ์›น ์„œ๋ฒ„ ์‹œ์ž‘๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ.
if __name__ == "__main__": # ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์ .
# ๋ชจ๋“ˆ.ํ•จ์ˆ˜.
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
try:
from django.core.management import execute_from_command_line
Expand Down
14 changes: 10 additions & 4 deletions djangogirls/mysite/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.0/ref/settings/
"""

# ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ์„ค์ • ์ง€์›. ๊ฒฝ๋กœ ์ง€์ •, ์‹œ๊ฐ„ ์„ค์ •, app ์—ฐ๊ฒฐ,
import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
Expand Down Expand Up @@ -37,7 +37,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'blog', # ๋‚˜ ์ด์ œ blog๋ผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค์—ˆ๊ณ , ์ด๊ฑฐ ์‚ฌ์šฉํ•  ๊ฑฐ๋‹ค.
]

MIDDLEWARE = [
Expand Down Expand Up @@ -74,13 +74,16 @@
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
DATABASES = { # ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†Œํ”„ํŠธ์›จ์–ด.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ๊ฑด sqlite3
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

# makemigrations: ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ดˆ์•ˆ ์ƒ์„ฑ.
# migrate: ํ•ด๋‹น ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ์„ DB(์šฐ๋ฆฌ๋Š” sqlite3)์— ๋ฐ˜์˜ํ•˜๊ธฐ.
# showmigrationsL ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉ ํ˜„ํ™ฉ ํ™•์ธ
# sqlmigrate: ์ง€์ • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์˜ SQL ๋‚ด์—ญ.

# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
Expand Down Expand Up @@ -120,3 +123,6 @@

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# os.path.join์€ ๋‘ ๋ฌธ์ž์—ด์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“œ๋Š” ์—ญํ• .
# BASE_DIR์€ ์žฅ๊ณ  ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ.
# static์€ ๊ทธ ๋’ค์— ๋ง๋ถ™์ผ ๊ฒฝ๋กœ.
7 changes: 5 additions & 2 deletions djangogirls/mysite/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
from django.urls import path, include # path, include ํ•จ์ˆ˜ ์“ฐ๋ ค๋ฉด ํ•„์š”.

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
path('', include('blog.urls')), # url ํ™•์ธ. ์ฐพ๊ธฐ. view๋กœ ์—ฐ๊ฒฐ.
]

# URLconf url configuration.: url ์ปค๋„ฅ์…˜ ํ”„๋กœํผํ‹ฐ๋“ค์˜ ์ง‘ํ•ฉ. urls.py๊ฐ€ URLcof
# URL Uniform Resource Locators

0 comments on commit dfae829

Please sign in to comment.