[Python] Django 프레임워크 사용하기
- Django Framewwork
- 기본 설치와 설정은 되었는 것으로 전제
- 참고 : 파이썬 웹 시작하기 https://codens.info/1684
//==============
* 가상 환경 만들기
- VirtualenvWrapper 사용
mkvirtualenv django1
workon django1
which python // 가상 환경 확인
//============
* Django 설치
pip3 install django
python3 -m django --version //장고 버전확인
* Django 프로젝트 생성
cd ~
django-admin startproject django1
- 간이 테스트
cd django1
python3 manage.py runserver
http://127.0.0.1:8000
//===============================
* uwsgi 설치
pip3 install uwsgi
sudo apt-get install uwsgi-plugin-python
* uwsgi 설정
~/django1/uwsgi.ini 파일 생성
[uwsgi]
chdir = /home/ubuntu/django1
virtualenv = /home/ubuntu/.virtualenvs/django1
#home = /home/ubuntu/.virtualenvs/django1 #가상환경경로
daemonize=/home/ubuntu/.virtualenvs/django1/wsgi_daemon.log
logger = file:/home/ubuntu/.virtualenvs/django1/wsgi.log
#uid = ubuntu #gid = ubuntu
chmod-socket=666
#chown-socket = ubuntu:ubuntu
socket = 127.0.0.1:3033
#socket=/tmp/uwsgi_django1.sock
#stats = 127.0.0.1:9193
#master = true #processes = 4 #threads = 2 #vacuum = true
#enable-threads = true #single-interpreter = true #lazy-apps = true
module = django1.wsgi:application
#callable = app
wsgi-file = manage.py
- uwsgi 시작
uwsgi uwsgi.ini &
- 종료 방법 : sudo killall -9 uwsgi
- uwsgi 시작이 안되는 경우, 쉘이 zsh라면 bash로 바꾼다.
//======================
* Nginx 설정
/etc/nginx/sites-available/default 파일에 다음을 추가
#===========
# django1
server {
server_name django1.zz;
#root /home/ubuntu/django1;
#index index.html index.htm;
location / {
try_files $uri @app;
}
location @app {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3033;
}
}
- nginx 재시작
sudo service nginx restart
//=====================================
* 템플릿 페이지 만들고 경로 추가하기 (hello world)
* 앱 생성
django-admin startapp home
or
python manage.py startapp home
* 설정 수정
//===================
- django1/settings.py 파일 수정
INSTALLED_APPS = [
...
'home', # 추가
]
//=================
- django1/urls.py 파일 수정
from home.views import HomeView
urlpatterns = [
path('home', HomeView.as_view()),
...
]
* 웹 페이지 만들기
cd home #생성된 앱 폴더로 이동
mkdir templates # 템플릿 폴더 생성
- templates/index.html #파일 생성
<html>
<head><title>Home Page</title></head>
<body>
Hello world
</body>
</html>
- views.py # 파일 생성
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from django.views.generic import TemplateView
class HomeView(TemplateView):
template_name = 'index.html'
uwsgi 재시작
http://localhost/home 주소로 접속
//===============
//참고
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/development_environment
https://tutorial.djangogirls.org/ko/django_start_project/
https://docs.djangoproject.com/ko/2.1/intro/tutorial01/
https://www.codementor.io/kratos/building-an-hello-world-application-with-python-django-95sysyr6v