$ pyenv virtualenv 3.5.1 blog
$ pyenv virtualenv [version] [name]
$ pyenv activate [name]
$ pyenv activate blog
$ pip freeze
처음 시작했는데 여러가지 리스트가 나온다면 pyenv uninstall [name]
pip not command
가 뜰 경우 해당 가상환경이 activate가 되었는지 확인
.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
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
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 접속 아래와 같은 화면 나오면 성공
runserver 하면 자동적으로 db.sqlite3가 생성
.gitignore 마지막줄에 추가 후 github push
# Database
db.sqlite3
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 patterns
에 localhost
에 들어오자 마자 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
를 출력해주기 위해서
views.py
에 room
이라는 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] => 그 파일을 읽어서 한줄씩 실행 [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라는 어플리케이션이 생겼구나