728x90
반응형
Django 설치 및 시작
* 기본
뷰-템플릿-모델 순으로 배운다. (View - Templet - Model)
파이썬을 쓰다보면 Django 같은 패키지가 많다.
무분별하게 사용하다 보면 꼬이는 경우도 있다.
하나의 프로그램 <ex) Django >를 위한 환경을 만들어 주는게 virtualenv 명령어이다.
이제 venv 라는 가상 환경을 만들어주면 venv 아래 bin 명령어가 생긴다.
->
$ cd
$ pwd
/home/web
$ virtual venv
$ cd venv
$ pwd
/home/web/venv
$ ll
drwxrwxr-x 5 web web 4096 Jun 28 15:30 ./
drwxr-xr-x 33 web web 4096 Jun 28 15:25 ../
drwxrwxr-x 3 web web 4096 Jun 28 15:30 bin/
drwxrwxr-x 2 web web 4096 Jun 28 15:25 include/
drwxrwxr-x 3 web web 4096 Jun 28 15:25 lib/
$ source venv/bin/active
-> venv 활성화
(venv) $ pip install django==1.7.3 //1.7.3 버전으로 설치한다.
그냥 pip install django 로 하게 되면 최신 버전을 받게 되고, 최신 버전인 1.8. 대는
실습 하는데 문제가 있을 수도 있기 때문이다.
Virtual Box 에서 로컬(윈도우)PC의 C:\workspace 로 공유 폴더를 설정했기 때문에 /home/web/workspace 에서 파일을 만들어주면 C:\workspace에서 보이게 된다.
* Django Project 생성
(venv) $ django-admin.py startproject survey // survey라는 장고프로젝트 생성
(venv) $ cd survey
(venv) $ pwd
(venv) $ python manage.py runserver 0.0.0.0:8000 & //장고 데몬 실행
Virtual Box에서 ip 확인 후 브라우저에서
-> 장고 디폴트 페이지 나오는지 확인 ( It works!! )
* django-admin.py -> 이 파일을 사용하여 장고의 명령어를 실행할수 있다.
개발을 위한 호스트 설정
< 첫 번째 장고 프로젝트 > - 투표 서비스 만들기
드래그
- Django Application
Django Project는 하나 이상의 Application으로 구성
poll : 어플리케이션이름
(venv) $ python manage.py startapp polls
python manage.py startapp <어플리케이션 이름>
: 투표기능을 위해 polls 라는 어플리케이션 생성
어플리케이션을 만들면 해당 어플리케이션 이름으로 디렉터리가 생기고, 다시 survey 디렉터리가 생긴다.
# /home/web/workspace/survey
drwxrwxrwx 1 web web 0 Jun 28 16:15 ./
drwxrwxrwx 1 web web 0 Jun 28 15:38 ../
-rwxrwxrwx 1 web web 3072 Jun 28 16:02 db.sqlite3*
-rwxrwxrwx 1 web web 249 Jun 28 15:38 manage.py*
drwxrwxrwx 1 web web 4096 Jun 28 16:15 polls/
drwxrwxrwx 1 web web 0 Jun 28 15:38 survey/
drwxrwxrwx 1 web web 0 Jun 28 15:38 ../
-rwxrwxrwx 1 web web 3072 Jun 28 16:02 db.sqlite3*
-rwxrwxrwx 1 web web 249 Jun 28 15:38 manage.py*
drwxrwxrwx 1 web web 4096 Jun 28 16:15 polls/
drwxrwxrwx 1 web web 0 Jun 28 15:38 survey/
- 어플리케이션 디렉터리 내 파일 리스트
drwxrwxrwx 1 web web 4096 Jun 28 16:15 ./
drwxrwxrwx 1 web web 0 Jun 28 16:15 ../
-rwxrwxrwx 1 web web 63 Jun 28 16:15 admin.py*
-rwxrwxrwx 1 web web 0 Jun 28 16:15 __init__.py*
drwxrwxrwx 1 web web 0 Jun 28 16:15 migrations/
-rwxrwxrwx 1 web web 57 Jun 28 16:15 models.py*
-rwxrwxrwx 1 web web 60 Jun 28 16:15 tests.py*
-rwxrwxrwx 1 web web 63 Jun 28 16:15 views.py*
drwxrwxrwx 1 web web 0 Jun 28 16:15 ../
-rwxrwxrwx 1 web web 63 Jun 28 16:15 admin.py*
-rwxrwxrwx 1 web web 0 Jun 28 16:15 __init__.py*
drwxrwxrwx 1 web web 0 Jun 28 16:15 migrations/
-rwxrwxrwx 1 web web 57 Jun 28 16:15 models.py*
-rwxrwxrwx 1 web web 60 Jun 28 16:15 tests.py*
-rwxrwxrwx 1 web web 63 Jun 28 16:15 views.py*
setting.py 파일에 polls 추가
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
) + ('polls',)
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
) + ('polls',)
* View 함수
- view 함수 및 url dispatcher 예제를 활용하여 url 등록해보기 ("poll" application 안에서 )
<views.py>
view 함수에 request 파라미터에는 사용자가 요청한 것이며 데이터가 담겨잇다.
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def hello_django(request):
return HttpResponse("Hello, Django")
from django.http import HttpResponse
# Create your views here.
def hello_django(request):
return HttpResponse("Hello, Django")
위와 같이 view.py 작성한 내용을 어떻게 출력할 것인가? -> urls.py 에 등록하면
위의 함수를 호출할 수 있다.
<urls.py>
- url 패턴 등록하기
url(r'어플리케이션명/(패턴)/$', '어플리케이션명.views.views.py 내에 정의한 함수명', name='함수명'),
아래의 패턴 등록 중 위 views.py에 index 함수 부분만 설명하자면,
url(r'polls/$', 'polls.views.index', name='index'),
위와 같이 정의.
-----> 다시 정리 하자면,
url 패턴 등록시 .....
url(<URL 패턴>, <함수명>[, name=<매핑명>])
함수 이름을 변수처럼 쓰려면 모듈을 import해야되는데
장고에서는 꼭 그렇게 하지 않아도 문자열로 시작점부터 끝까지 등록을 하게 되면
함수명에
앱.파일이름.함수이름 형식으로 사용가능.
ex) 'polls.views.hello_django'
- urls.py 에서
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'survey.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/', 'polls.views.hello_django', name='hello_django')
)
from django.contrib import admin
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'survey.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/', 'polls.views.hello_django', name='hello_django')
)
http://xxx.xxx.xxx.xxx/polls 접속 테스트
===================================================
반응형
'Programming' 카테고리의 다른 글
Octopress 설치하기 (0) | 2017.03.02 |
---|---|
[문자열]-1 (정리필요) (0) | 2017.02.20 |
[Django] 문제 - View 함수 추가 및 App 생성하여 간단한 html 코드 작성 (0) | 2015.07.08 |
[Django] Templet 활용하기 (0) | 2015.07.08 |
SyntaxError: Non-UTF-8 code starting with '\xb9' (vi로 작성시 encoding 문제) (0) | 2015.06.04 |