일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- advColumnGrid
- dbadvgrid
- 백준
- templates
- GIT
- c#
- HTML
- rank
- 델파이
- Django
- delphi 10.3
- Visual Studio
- anaconda3
- queryset
- 중복제거
- COMMIT
- hackerrank
- get_object_or_404
- python 3.7
- MSSQL
- python3
- PyCharm
- TMS
- pythonanywhere
- github
- pyhcarm
- Push
- declare
- blog
- Delphi
- Today
- Total
DevHyun
[DevHyun's Blog] django 에서 첫 URL 생성 후 view 와 Template만들기! 본문
[DevHyun's Blog] django 에서 첫 URL 생성 후 view 와 Template만들기!
D3V3L0P3R 2020. 10. 16. 19:55
1. Django URL
Django는 URLconf (URL configuration)를 사용합니다. URLconf는 Django에서 URL과 일치하는 뷰를 찾기 위한 패턴들의 집합입니다.
2. DevhyunDjangoBlog/url.py
* Django는 admin/로 시작하는 모든 URL을 view와 대조해 찾아냅니다. 무수히 많은 URL이 admin URL에 포함될 수 있어 일일이 모두 쓸 수 없기 때문에 정규표현식을 사용합니다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
3. Blog App에서 DevhyunDjangoBlog/urls.py파일로 url들을 가져오기
* DevhyunDjangoBlog/urls.py
* 아래의 코드로 인해 Django는 http://127.0.0.1:8000/ 로 들어오는 모든 접속 요청을 Blog.urls(Blog/urls.py)로 전송해 추가 명령을 찾을 것.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
4. Blog App에서 urls.py 파일 생성 후 URL 패턴 추가
* path와 Blog App에서 사용할 모든 views를 가져오기( from . )
* post_list라는 view가 루트 URL에 할당되었습니다. 이 URL 패턴은 빈 문자열에 매칭이 되며, 장고 URL 확인자(resolver)는 전체 URL 경로에서 접두어(prefix)에 포함되는 도메인 이름(i.e. http://127.0.0.1:8000/)을 무시하고 받아들입니다. 이 패턴은 장고에게 누군가 웹사이트에 'http://127.0.0.1:8000/' 주소로 들어왔을 때 views.post_list를 보여주라고 말해줍니다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
5. view가 없기때문에 run 해도 에러 발생!
6. Django view
View 는 애플리케이션의 "로직"을 넣는 곳입니다. Model에서 필요한 정보를 받아와서 템플릿에 전달하는 역할을 합니다.
7. Blog/views.py 에서 view 만들기
* post_lsit라는 함수(def)는 요청(request)을 넘겨받아 render메서드를 호출합니다. 이 함수는 render 메서드를 호출하여 받은(return) blog/post_list.html템플릿을 보여줍니다.
def post_list(request):
return render(request, 'blog/post_list.html', {})
8. 당연히 post_list.html 템플릿이 없으니 에러 발생!
9. Template
Django의 Template 양식은 HTML입니다.
10. Blog/Templates Directory 만들기
11. Blog/Templates/Blog Directory 만들기
12. Blog/Templates/Blog Directory에 post_list.html 파일만들기
13. run 한 후에 http://127.0.0.1:8000 진입
* 에러 사라지고 빈 페이지 호출
쨔잔-! 빈-페이지!
14. post_list.html 에 테스트 코드 넣고 run!
<html>
<p>Hi there!</p>
<p>It works!</p>
</html>
15. Templates 예제 입력!
<!DOCTYPE html>
<html>
<head>
<title>DevHyun's blog</title>
</head>
<body>
<div>
<h1><a href="">DevHyun's Blog</a></h1>
</div>
<div>
<h2><a href="">My first post</a></h2>
<p>Hi there!</p>
<p>published: 16.10.2020, 19:00</p>
</div>
<div>
<h2><a href="">My second post</a></h2>
<p>bye there..</p>
<p>published: 16.10.2020, 19:01</p>
</div>
</body>
</html>
16. 완-벽
'Web > Django&Python Blog Projecct' 카테고리의 다른 글
[DevHyun's Blog] Pythonanywhere 에서 Git Project Pull 한 후 재배포 하기 (0) | 2020.10.19 |
---|---|
[DevHyun's Blog] Django ORM과 QuerySet 그리고 동적데이터 활용 (0) | 2020.10.19 |
[DevHyun's Blog] Django&Python으로 만든 Blog를 가상환경(pythonanywhere)에서 배포하기! (0) | 2020.10.16 |
[DevHyun's Blog] Django&Python으로 Blog 만들기 - Blog의 관리자 페이지 (0) | 2020.10.16 |
[DevHyun's Blog] Django&Python으로 Blog 만들기 - Blog의 게시글 Model 만들기 (0) | 2020.10.16 |