Windows10(WSL)로, django2의 모던 개발 입문기 ①도입
Django2.0을 배우십시오.
앞으로의 작업에서 필요할 것 같기 때문에 Django2.0을 배워 둔다. 공부를 겸해, 최근 릴리스된 python3.7과 pipenv, version 2018.7.1을 사용해, 가능한 한 모던하게 개발해 보고 싶다.
전제
※redis를 사용하는 이유는, 「개설 후 3주 만에 수익 10만엔을 얻은 개인개발 사이트에서 한 일 전부 공개 」라고 하는 인기 엔트리의 영향을 받은 것.
(엔트리에서 빼기 쓰기)
Heroku의 무료 Dyno는 약력입니다. 더하여 서버의 위치는 US 또는 유럽.
Heroku의 Redis(무료 플랜)에는 25M의 캐쉬를 둘 수 있으므로 여기에 데이터를 전부 둔다.
모든 응답은 Redis 캐시에서 Heroku 로그에서 5ms 이내입니다.
데이터베이스가 갱신되면, 자동으로 그 내용을 Redis에 기입하는 처리를 넣는다.
Postgresql과 MySQL의 무료 테두리는 너무 작습니다. MongoDB는 500M까지 무료.
흠흠.
개발 환경은 WSL(ubuntu/debian)에 구축
git/heroku의 취급 등으로 windows 특유의 괴로움을 피하기 위해 WSL (Windows Subsystem for Linux)을 스토어에서 도입한다. 제 경우에는 우분투/데비안. python3.7과 pipenv를 도입하는 방법에 대해서는 여기을 참조하십시오.
현지에서 장고를 달린다.
1) pipenv를 시작하고 개발 환경에 들어간다.
pipenv에 익숙하지 않기 때문에, 기본적인 곳으로부터 확인해 두자.
참고 내 컴퓨터에서는 아래의 alias에서 windows의 D 드라이브에 들어가서 작업하고 있습니다.
alias cdd='cd/mnt/d/deb'
파이썬 버전에 변경 사항이 없으면 pipenv install (첫 번째) 후 pipenv shell로 개발 환경에 들어갑니다.
/mnt/d/deb$ pipenv install
Installing dependencies from Pipfile.lock (a65489)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
/mnt/d/deb$ pipenv shell
Launching subshell in virtual environment…
. /home/kmry/.local/share/virtualenvs/deb-mRcDauaS/bin/activate
2) django 등을 도입
최소한은 pip install django.
그 외, 목적에 따라 라이브러리를 넣어 간다(처음에는 필요없음).
넣은 라이브러리는 pip list로 확인. 현재 개발 환경에서는 다음과 같은 느낌.
/mnt/d/deb$ pip list
Package Version
--------------- -------
Cython 0.28.4
Django 2.0.7
numpy 1.14.5
pandas 0.23.3
pip 10.0.1
python-dateutil 2.7.3
pytz 2018.5
redis 2.10.6
setuptools 40.0.0
six 1.11.0
wheel 0.31.1
참고로 개발 환경에서 exit하고 pip list하면 글로벌 환경의 pip 라이브러리를 확인할 수 있다.
$ pip list
Package Version
---------------- ---------
certifi 2018.4.16
pip 10.0.1
pipenv 2018.7.1
setuptools 39.0.1
virtualenv 16.0.0
virtualenv-clone 0.3.0
pipenv(2018.7.1)가 존재함을 알 수 있다.
다시 pipenv shell로 개발 환경으로 돌아갈 수 있다.
3) 장고를 현지에서 움직인다.
지금의 프레임 워크인 Django를 시작하는 것은 간단하다.
앱 이름을 결정하고 startproject하고 runserver하면됩니다.
WSL상의 django는 호스트 기계의 windows10에서 localhost로 보이기 때문에,
브라우저에서 동작 확인하기도 쉽다.
/mnt/d/deb$django-admin.py startproject als_proj1
/mnt/d/deb$cd als_proj1
/mnt/d/deb/als_proj1$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 21, 2018 - 05:15:45
Django version 2.0.7, using settings 'als_proj1.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[21/Jul/2018 05:16:03] "GET / HTTP/1.1" 200 16348
[21/Jul/2018 05:16:03] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[21/Jul/2018 05:16:03] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
[21/Jul/2018 05:16:03] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[21/Jul/2018 05:16:03] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
Not Found: /favicon.ico
[21/Jul/2018 05:16:03] "GET /favicon.ico HTTP/1.1" 404 1975
그렇다면 브라우저에서 다음 명령으로 django에 액세스 할 수 있습니다.
htp://127.0.0.1:8000/
그냥 시작했을 뿐이므로 일단 정지 (CONTROL-C)
4) 폴더 구성 확인
트리를 넣고 폴더 구성을 확인해 둡시다.
/mnt/d/deb$ tree .
.
├── Pipfile
├── Pipfile.lock
└── als_proj1
├── als_proj1
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
└── manage.py
Pipfile과 Pipfile.lock은이 개발 환경을위한 pipenv 관련 파일입니다.
als_proj1 폴더는 django2.0의 초기 구성.
다음 번에는 postgres 도입
다음 번은 postgres를 도입. WSL은 windows에서 보면 1 앱에 지나지 않기 때문에 postgres는 windows 버전을 도입하고 싶다.
Reference
이 문제에 관하여(Windows10(WSL)로, django2의 모던 개발 입문기 ①도입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/e-a-st/items/4ccbf0e98ac06ce5a843
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/mnt/d/deb$ pipenv install
Installing dependencies from Pipfile.lock (a65489)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
/mnt/d/deb$ pipenv shell
Launching subshell in virtual environment…
. /home/kmry/.local/share/virtualenvs/deb-mRcDauaS/bin/activate
/mnt/d/deb$ pip list
Package Version
--------------- -------
Cython 0.28.4
Django 2.0.7
numpy 1.14.5
pandas 0.23.3
pip 10.0.1
python-dateutil 2.7.3
pytz 2018.5
redis 2.10.6
setuptools 40.0.0
six 1.11.0
wheel 0.31.1
$ pip list
Package Version
---------------- ---------
certifi 2018.4.16
pip 10.0.1
pipenv 2018.7.1
setuptools 39.0.1
virtualenv 16.0.0
virtualenv-clone 0.3.0
/mnt/d/deb$django-admin.py startproject als_proj1
/mnt/d/deb$cd als_proj1
/mnt/d/deb/als_proj1$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 21, 2018 - 05:15:45
Django version 2.0.7, using settings 'als_proj1.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[21/Jul/2018 05:16:03] "GET / HTTP/1.1" 200 16348
[21/Jul/2018 05:16:03] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[21/Jul/2018 05:16:03] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
[21/Jul/2018 05:16:03] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[21/Jul/2018 05:16:03] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
Not Found: /favicon.ico
[21/Jul/2018 05:16:03] "GET /favicon.ico HTTP/1.1" 404 1975
/mnt/d/deb$ tree .
.
├── Pipfile
├── Pipfile.lock
└── als_proj1
├── als_proj1
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
└── manage.py
다음 번은 postgres를 도입. WSL은 windows에서 보면 1 앱에 지나지 않기 때문에 postgres는 windows 버전을 도입하고 싶다.
Reference
이 문제에 관하여(Windows10(WSL)로, django2의 모던 개발 입문기 ①도입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/e-a-st/items/4ccbf0e98ac06ce5a843텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)