Code/Python

[Python] Django 프레임워크 사용하기

codens 2019. 3. 15. 02:55


    - 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





반응형