Skip to content

Instantly share code, notes, and snippets.

@LeoHeo
Last active May 29, 2016 13:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LeoHeo/8ec705ede8aeced43bf5dc3f7f9ba30a to your computer and use it in GitHub Desktop.
Save LeoHeo/8ec705ede8aeced43bf5dc3f7f9ba30a to your computer and use it in GitHub Desktop.
pip를 다루고, 파이썬 패키지를 정확하게 설치하고 django를 start하는 방법

pip를 다루고, 파이썬 패키지를 정확하게 설치하고 django를 start하는 방법

실행순서

1. 가상환경 만들기

$ pyenv virtualenv 3.5.1 blog
$ pyenv virtualenv [version] [name]

2. 만든 가상환경 activate

$ pyenv activate [name]
$ pyenv activate blog

3. autoenv setting

4. 설치된거 있는지 확인

$ pip freeze

처음 시작했는데 여러가지 리스트가 나온다면 pyenv uninstall [name] pip not command가 뜰 경우 해당 가상환경이 activate가 되었는지 확인

5. .gitignore 설정

.gitingore.io 참고하여 .gitignore설정 shell 바로 설정하는 법

Mac 기준 Terminal 에서 바로 .gitignore파일 만들기

!/bin/bash

$ echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc

!/bin/zsh

$ echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.zshrc && source ~/.zshrc

사용법

$ gi python > .gitignore

git status로 .env파일 추적하나 확인하고 .gitignore push

6. Django 초기 템플릿 설정

django-admin startproject [name]
$ django-admin startproject test_blog

그러고 나서 제대로 생성되었는지 확인

$ tree test_blog
test_blog
├── manage.py
└── test_blog
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

7. runserver

runserver시 ip주소랑 port_number 지정안하면 default 127.0.0.1:8000

python [name]/manage.py runserver [ip:port_number]
$ python test_blog/manage.py runserver
$ python test_blog/manage.py runserver 8080
$ python test_blog/manage.py runserver 0.0.0.0:8080

현재는 default설정으로 한다.

localhost:8000 접속 아래와 같은 화면 나오면 성공

8. .gitignore에 db.sqlite3 추가

runserver 하면 자동적으로 db.sqlite3가 생성

.gitignore 마지막줄에 추가 후 github push

# Database
db.sqlite3

9. 메인 페이지에 Hello World 찍어보기

django는 MTV 이다.

MVC랑 비교하면 아래와 같다.

MTV MVC
Model Model
Templates View
Views Controller

그래서 우린 controller에 해당하는 views.py라는 파일을 생성한다.

그러고 나서 views.py, url.py에 아래와 같이 작성한다

views.py

from django.http.response import HttpReponse


def home(request):
  return HttpResponse("Hello world")

url.py에서 django에서 제공하는것이 아니기 때문에

from django.contrib import admin밑에 아래와 같이 작성해준다.

그러고 url patternslocalhost에 들어오자 마자 Hello World가 나와야 하기 때문에

url(r'^$', home), 를 추가 해준다

urls.py

from django.conf.urls import url
from django.contrib import admin

from test_blog.views import home

url_patters = [
  url(r'^admin/',admin.site.urls),
  url(r'^$', home),
]

그러고 나서 다시 localhost:8000으로 접속하면 화면에 Hello World가 보일 것이다.

room_id를 받으면 room_id 출력

사용자가 입력한 room_id를 출력해주기 위해서

views.pyroom이라는 function를 추가한다.

room_id를 받기 위해서 아래와 같이 function argument를 추가한다.

views.py

from django.http.response import HttpResponse


def home(request):
  return HttpResponse("Hello World")
  
  
def room(request, room_id):
  return HttpResponse("This is Room : " + room_id)

그 다음에 urls.py에도 room을 받을 수 있게 추가해준다.

from django.conf.urls import url
from django.contrib import admin

from test_blog.views import home, room

url_patterns = [
  url(r'^admin/', admin.site.urls),
  
  url(r'^$', home)
  url(r'^rooms/(?P<room_id>\d+)/$', rooms)
]

localhost:8080/rooms/1234 하면

This is room : 1234가 뜨면 성공이다.

source [file], ./ [file]

source [file] => 그 파일을 읽어서 한줄씩 실행 [r] 모드 권한 있으면 됨 ./ [file] => 현재경로에 파일 실행 [x]모드 권한 필요함

django-admin startproject ____ # scanfolding (자동으로 만들어준다)

django-admin startapp

python wpsblog/manage.py runserver # 서버시작

Project => 우리가 개발하고 있는 최종 큰 프로젝트 (웹 어플리케이션 / 백엔드 어플리케이션)

application => 프로젝트에 포함된 작은 소스들 (MVC Framework..)

PROJECT "FACEBOOK"
APPLICATION "users"
APPLICATION "posts" - users의 의존성
APPLICATION "messages" - users의 의존성
APPLICATION "page" - users의 의존성
APPLICATION "groups" - users의 의존성
APPLICATION "admin"

django-admin startproject wpsblog
폴더 구조상
=> 1 wpsblog project,
=> 2 wpsblog application
일단은 wpsblog라는 어플리케이션이 생겼구나

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment