이번장에서는 Django에 bootstrap frame을 사용해보겠다.


이전장에서 프로젝트 이름을 cert, 앱 이름을 pat으로 만들었다.

django template을 사용하기 위해 pat 디렉토리 하위에 static을 만들고 static 하위에 pat이란 이름의 디렉토리를 생성한다.

[root@leopit.com ~]# mkdir -p pat/static/pat

[root@leopit.com ~]# cd pat/static/pat


본인이 사용할 bootstrap template을 가져온다.

[root@leopit.com pat]# wget https://github.com/BlackrockDigital/startbootstrap-shop-homepage/archive/gh-pages.zip

[root@leopit.com pat]unzip gh-pages.zip

[root@leopit.com pat]# ls

404.html              gulpfile.js        register.html

bak                   js                 scss

blank.html            LICENSE            startbootstrap-sb-admin-gh-pages

charts.html          index.html     login.html         tables.html

css                   package.json       vendor

forgot-password.html  package-lock.json

gh-pages.zip          README.md


이 다음 앱 디렉토리 하위에 templates/pat 디렉토리를 생성한 후 index.html 파일 옮긴다.

본인의 경우 index.html 파일명을 main.html로 변경하였다.

[root@leopit.com ~]# mkdir -p ~/pat/templates/pat

[root@leopit.com ~]# cd /pat/templates/pat

[root@leopit.com pat]# mv ~/pat/static/pat/index.html ./main.html

[root@leopit.com pat]# ls

main.html


이제 html 파일의 css 경로를 바꿔주자

문서 최상단에 {% load staticfiles %} 을 추가해주고 각종 css 경로를 수정한다.

경로는 static 디렉토리 하위에 존재하는 bootstrap 템플릿 경로를 써주면 된다.


[root@leopit.com ~]# vi main.html

<!DOCTYPE html>

{% load staticfiles %}


   <title>SB Admin - Dashboard</title>

    <!-- Bootstrap core CSS-->
    <link href='{% static "pat/vendor/bootstrap/css/bootstrap.min.css" %}' rel="stylesheet">

    <!-- Custom fonts for this template-->
    <link href='{% static "pat/vendor/fontawesome-free/css/all.min.css" %}' rel="stylesheet" type="text/css">

    <!-- Page level plugin CSS-->
    <link href='{% static "pat/vendor/datatables/dataTables.bootstrap4.css" %}' rel="stylesheet">

    <!-- Custom styles for this template-->
    <link href='{% static "pat/css/sb-admin.css" %}' rel="stylesheet">

    <!-- Bootstrap core JavaScript -->
    <script src='{% static "pat/vendor/jquery/jquery.min.js" %}'></script>
    <script src='{% static "pat/vendor/popper/popper.min.js" %}'></script>
    <script src='{% static "pat/vendor/bootstrap/js/bootstrap.min.js" %}'></script>


이제 view.html을 수정하여 template을 연결해준다.


[root@leopit.com pat]# vim ~/pat/views.py

# -*- coding: utf-8 -*-

from __future__ import unicode_literals

from django.shortcuts import render

from django.http import HttpResponse

from django.template import loader


# Create your views here.

def index(request):

    template = loader.get_template('pat/main.html')

    context = {

        'latest_question_list': "test",

    }

    return HttpResponse(template.render(context, request))


외부에서 접근할 url을 설정하고 해당 url에 대한 html 파일을 연결해준다.

settings.py에 맨 하단에 STATIC_URL과 ROOT설정을 해준다.


STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')


마지막으로 collectstatic을 해주면 static/pat에 파일이 복사된다.

[root@leopit.com ~]# python manage.py collectstatic

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/base.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/changelists.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/dashboard.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/fonts.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/forms.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/login.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/rtl.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/css/widgets.css'

Copying '/usr/lib64/python2.7/site-packages/django/contrib/admin/static/admin/fonts/LICENSE.txt'

...



[root@leopit.com ~]# cd ~/static/pat

[root@leopit.com pat]# ls

404.html     css                   js            package-lock.json  tables.html

bak          forgot-password.html  LICENSE       README.md          vendor

blank.html   gh-pages.zip          login.html    register.html

charts.html  gulpfile.js           package.json  scss


마지막으로 데몬실행후 사이트 접근

[root@leopit.com ~]# python manage.py runserver 0.0.0.0:8000





'Coding' 카테고리의 다른 글

4. Django DB 만들기  (0) 2018.12.30
Django 개발 흐름  (0) 2018.12.16
2. Django 설치편  (0) 2018.12.14
1. Django 개념알기  (0) 2018.12.06
[PHP] 다운로드 구현시 파일이름에 [1] 등이 자동으로 붙어버리는 문제  (0) 2017.01.07

+ Recent posts