티스토리 뷰

One Projects, Multi App

장고 프로젝트 : 장고프로젝트 룰에 따라 파일/디렉토리 구성이 된 디렉토리(파이썬 패키지)

장고 앱 : 장고 앱 룰에 따라 파일 디렉토리 구성이된 파이썬 패키지


1. Django Project 생성

django-admin startproject [프로젝트명] 

>> django-admin startproject askdjango # askdjango라는 이름의 프로젝트를 생성한다.


PS E:\tmp\askdjango> cd .\askdjango\


    디렉터리: E:\tmp\askdjango\askdjango


Mode                LastWriteTime         Length Name

----                -------------         ------ ----

-a----     2017-xx-xx   오후 3:51           3225 settings.py

-a----     2017-xx-xx   오후 3:51            787 urls.py

-a----     2017-xx-xx   오후 3:51            412 wsgi.py

-a----     2017-xx-xx   오후 3:51              0 __init__.py 


(참고) 프로젝트를 생성 한 상위디렉토리의 파일명은 변경이 가능하다 초록색 하이라이트


2. Django App 생성

모든 명령은 manage.py가 존재하는 디렉토리에서 진행 할 것

python3 manage.py startapp [앱 이름]

>> python3 manage.py startapp blog # blog라는 이름을 지정하여 blog앱을 생성한다.


프로젝트 생성 이후 아래와같은 설정작업이 필요하다.

1. 앱을 프로젝트의 등록 !! 프로젝트(askdjango) 의 settings.py 파일 수정  # blog앱을 추가

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'blog',

]

2.  프로젝트(askdjango) 의 urls.py 파일 수정

from django.conf.urls import include, url 


urlpatterns = [

    url(r'^admin/', admin.site.urls),

    url(r'^blog/', include('blog.urls', namespace='blog')) # blog/이하 url요청에 대한 처리를 blog로 넘김


## namespace의 경우, 여러개의 프로젝트 생성 시 views 함수 처리의 이름 중복이 발생할수 있어, namespace와 name을 지정하여 중복 예외 ( 프로젝트 상단 namespace지정, 앱 내부 url name을 지정하여 중복을 피함 )

3. 앱 (blog)의 urls.py 생성 후 아래와 같이 기본 틀 작성

from django.conf.urls import url


urlpatterns = [   

]

4. 앱 (blog)의 디렉토리 templates 디렉토리 생성 (필히 templates디렉토리 생성 후 하위디렉토리 "앱 명" 디렉토리 추가 생성)

>> mkdir -p templates/blog/

## 4번 항목은 필수사항 아님

(참고) blog라는 앱의 디렉토리가 생성되며 python3 manage.py --help를 통해 사용가능한 명령어를 확인할수 있다.

[auth]

    changepassword

    createsuperuser


[contenttypes]

    remove_stale_contenttypes


[django]

    check

    compilemessages

    createcachetable

    dbshell

    diffsettings

    dumpdata

    flush

    inspectdb

    loaddata

    makemessages

    makemigrations

    migrate

    sendtestemail

    shell

    showmigrations

    sqlflush

    sqlmigrate

    sqlsequencereset

    squashmigrations

    startapp

    startproject

-------------생략-------------


3. View 파일 작성 및 URL 패턴 매칭

 1. views.py를 열어 post_list라는 임의 함수를 작성

  # blog/views.py

from django.shortcuts import render


def post_list(request):

return render(request, 'blog/post_list.html')

 2. 앱(blog)의 urls.py 설정

 # blog/urls.py

from django.conf.urls import url

from . import views  # blog앱 (현재 디렉토리) views를 import한다.


urlpatterns = [

                   url(r'^$', views.post_list), ## /blog/라는 url로 요청이 들어올 경우 post_list함수를 처리 하여라.

]

 3. app/templates/app/post_list.html 작성

 # blog/templates/blog/post_list.html

<h1> AskDjango </h1>

<p>

안녕하세요. 여러분의 파이썬/장고 페이스메이커가 되어드리겠습니다. ;)

</p>


4. Django 실행

python3 manage.py runserver 0:[임시포트] 실행

http://127.0.0.1:8000/blog 접속 


(참고) django를 실행 시킨 터미널은 그대로 유지하고 새로운 터미널을 실행시켜 작업을 진행한다.


#

(참고) viewport meta태그를 적용하여, 모바일 뷰 대응

- viewport meta : 배율 x 1.0 고정으로, 유저의 배율 조정을 막는다.

meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> 

휴대폰 브라우저로 개발서버에 접속 하기 위해 ngrok를 사용하여 개발테스트가 가능하다.(https://ngrok.com/)


정리

1. url 별로 호출 함수를 등록 한다 (# /blog/요청이 올 경우 views.post_list함수를 호출 하여라)

2. Views에 선언된 함수를 통해 요청을 처리하여 반환 한다.
(이때, views는 model을 통해 database를 참조하여, 데이터를 조회/수정/삭제 하고, 해당 결과를 템플릿을 통해 유저에게 응답한다.)





django 설치방법 및 overview는 https://nomade.kr/vod/django/53/ 참고 바랍니다.

"""본 내용은 AskDjango VOD, "장고 차근차근 시작하기" 강의내용을 참고하여 작성했습니다.(https://nomade.kr/)"""

반응형

'Python > * Django' 카테고리의 다른 글

6. Django Admin  (0) 2017.12.12
5. Migration  (0) 2017.12.12
4. Django Model과 Model Fields  (0) 2017.12.12
3. View Overview  (0) 2017.12.12
2. URL Conf 및 정규표현식  (1) 2017.12.11
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
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
글 보관함