일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Machine Learning
- Deep learning
- BigData
- 앱
- Android
- Toast Message
- APP
- 템플릿
- 파이썬
- 장고
- 인공지능
- ios toast message
- 시각화
- toast
- view
- Pycharm
- model
- 기계학습
- 머신러닝
- Artificial Intelligence
- swift toast message
- 딥러닝
- Django
- swift
- 빅데이터
- AI
- 디자인패턴
- 모델
- python
- IOS
- Today
- Total
이끼의 생각
Django Web (10) [실습] 블로그 만들기 - urls 본문
우리가 함께 실습하고 있는 블로그에 URL 을 세팅해보겠습니다.
블로그 답게 접속 시 글목록을 보여주게 만들어 봅시다. 접속하는 주소는 로컬 호스트로 정해줍니다.
(http://127.0.0.1:8000 or http://localhost:8000)
또한 mysite/urls.py파일을 깨끗한 상태로 유지하기 위해, blog 애플리케이션에서 메인 mysite/urls.py파일로 url들을 가져올 거에요.
웹서버 URL 세팅하기
우선 프로젝트 폴더의 urls.py에서 로컬호스트로 접속 요청 시 곧바로 blog에서 처리할 수 있게 지정해줍니다.
먼저 blog.urls를 가져오는 행을 추가해 봅시다. blog.urls를 가져오려면, include 함수가 필요합니다. from django.urls 행을 찾아 import 뒤에 include 함수를 추가하세요.
- 경로 : 프로젝트명/하위프로젝트명/urls.py
- 게시글 기준 위치 : IKKIsonDjango/IKKIsonDjango/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
#path('', include('elections.urls')),
path('', include('blog.urls')),
]
이제 모든 로컬호스트 접속 요청을 blog.urls 에 전송하여 추가 명령을 찾게 될 겁니다.
다음으로 blog.urls 를 작업해볼까요?
blog.urls 세팅하기
여기서 urls가 없어서 당황하신 분들이 있을 겁니다. blog 앱 폴더에 urls.py 파일을 먼저 생성하세요.
blog
├── migrations
| └── __init__.py
├── __init__.py
├── admin.py
├── models.py
├── tests.py
├── urls.py <- 추가!!
└── views.py
그다음 경로를 지정할 수 있게 필요한 모듈을 import 하겠습니다. 아래의 두 줄을 urls.py에 추가해주세요.
- 경로 : 프로젝트명/blog/urls.py
- 게시글 기준 위치 : IKKIsonDjango/blog/urls.py
from django.urls import path
from . import views
여기서 장고 함수인 path와 blog 애플리케이션에서 사용할 모든 views를 가져왔어요. (물론 아직 뷰를 만들기 전이지만 일 분 내로 만들거에요!)
그 다음, 첫 번째 URL 패턴을 추가하세요.
urlpatterns = [
path('', views.post_list, name='post_list'),
]
이제 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를 보여주라고 말해줍니다.
마지막 부분인 name='post_list'는 URL에 이름을 붙인 것으로 뷰를 식별합니다. 뷰의 이름과 같을 수도 완전히 다를 수도 있습니다. 이름을 붙인 URL은 프로젝트의 후반에 사용할 거예요. 그러니 앱의 각 URL마다 이름 짓는 것은 중요합니다. URL에 고유한 이름을 붙여, 외우고 부르기 쉽게 만들어야 해요.
이제 웹서버를 실행시켜 http://127.0.0.1:8000/ 에 접속해보겠습니다.
http://127.0.0.1:8000/ 접속했는데 '웹 페이지를 사용할 수 없음(web page not available)'이라는 메시지가 표시되었나요?. 이는 서버(runserver라고 입력하는 것을 기억 하는가?)가 실행되지 않았기 때문이에요. 에러가 발생한 이유를 찾으려면 서버 콘솔 창을 보세요.
아마 여러분들의 대부분은 pycharm에서 에러를 확인할 수 있습니다.
에러는 해결할 방법을 알려준답니다. : no attribute 'post_list' 라는 메시지가 보일거에요. 이 메시지는 장고가 찾고 사용하고자 하는 뷰가 아직 없다는 거에요. 이 단계에서 /admin/도 접속되지 않을 거에요. 앞으로 고쳐볼 테니 걱정하지 마세요.
일단 urls 세팅이 잘되었나 확인을 해야되는 views.py 파일에 임시로 hello world and blog 라고 출력하는 응답함수를 만들어 놓겠습니다.
- 경로 : 프로젝트명/blog/views.py
- 게시글 기준 위치 : IKKIsonDjango/blog/views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def post_list(request):
return HttpResponse("Hello World! and Blog")
이제 서버를 다시확인해봅시다.
url이 잘 세팅되었습니다.
장고의 url에 대해 자세히 알고싶으시면 장고 공식문서를 읽어보세요^^
바로가기 => 장고 공식 문서 URL
다음은 view를 만들어보겠습니다. view를 만들면서 html를 간단하게 알아볼텐데 Django ORM, CSS 등 View, UI와 관련된 많은량의 작업이 이어질 겁니다.
**출처 및 참고**
[프로그래머스] 정두식님의 장고를활용한 웹사이트만들기 동영상강의
[오픈소스튜로리얼] Quasar Beyond님의 Django : Python WebFrameWork 동영상강의
[장고걸스공식] 이수진님 외. 장고걸스 튜토리얼 한국어번역
'파이썬 장고 웹 프레임워크' 카테고리의 다른 글
Django Web (12) HTML 과 장고 템플릿 (0) | 2019.05.21 |
---|---|
Django Web (11) 장고 뷰 View (0) | 2019.05.21 |
Django Web (9) 장고 urls (0) | 2019.05.20 |
Django Web (8) 장고 관리자 (어드민, admin) (0) | 2019.05.20 |
Django Web (7) [실습] 블로그 만들기 - App, Model, DB 생성 (0) | 2019.05.19 |