Skip to main content

Django-Page

Django - Korean Style, Wordpress-like, Simplest, CMS (Content Management System)

한.국.형. ㅋ

- 문서 정리 중 -

Features

  • page code 기반 자동 url 매칭
  • ckeditor 기반 admin 제공
  • 기타등등

의존성

  • Django (2.0+ 만 테스트)
  • django-ckeditor
  • easy-thumbnails
  • django-user-agents
  • django-admin-sortable2

권장 설치

  • django-revision
  • django-revision-compare
  • django-bootstrap4

DEMO

셈플 테스트를 위한 예제 사이트를 제공합니다. sqlite3 기반의 셈플 데이터도 포함되어 있습니다.

Run

$ git clone https://github.com/bluedisk/django-page.git
$ cd example
$ pip install -r requirements.txt
$ ./manage.py runserver

관리자 화면 로그인 계정과 비밀번호는 admin / 관리자 입니다.

설치

0. pip install

pip install django-page

1. app setup

INSTALL_APPS에 'page'와 의존성 앱추가

INSTALLED_APPS = [
    ...

    # 필수 추가 앱
    'page',
    'ckeditor',
    'ckeditor_uploader', # 선택
    'easy_thumbnails',
    'django_user_agents',
    'adminsortable2',

    # 권장 설치 앱
    'reversion',
    'reversion_compare',

    ...

2. URL setup

메인 urls.py 파일 제일 하단에 page.urls 추가

urlpatterns = [

    
    path('ckeditor/', include('ckeditor_uploader.urls')),
    ...
 
    path('admin/', admin.site.urls),
    ...
    path('', include('page.urls')),
]

3. Middleware 추가

django-user-agents 의존성으로 미들웨어 추가 필요

MIDDLEWARE = [
    ...
    'django_user_agents.middleware.UserAgentMiddleware',
]

4. Custumize Template

templates/page/base.html 를 오버라이드해서 현 사이트 스타일과 일치하게 변경한다 필수적으로 필요한 블럭명은 css, leader, content, title, subtitle, bgimage 이다

아래는 base.html 템플릿 예시

<html lang="ko">
<head>
    <title>{{ site.name }}</title>

    {% block css %}
    {% endblock %}
</head>
<body class="st-container st-effect-3">

<div class="wrapper">

    {% block leader %}
        <h1>{% block title %}Title{% endblock %}</h1>
        <p>{% block subtitle %}Subtitle{% endblock %}</p>
    {% endblock %}

    {% block content %}
    {% endblock %}
</div>
</body>
</html>

Page Code

영문으로 된 slug 타입 문자열로 바로 URL로 대응 된다.

예를 들어 페이지 코드가 'test'인 경우 '/test' url로 연결시 표출된다. 따라서 admin등 다른 앱과 충돌이 되는 코드는 사용 하지말것!

Build-in page code

페이지 코드 'home'의 경우 루트 URL ('/')에 대해 예약 되어 있다.

Shortcode

등록된 키워드를 django template tag로 변환, 해석 해준다

사용법

page 컨텐츠 상에 다음과 같이 추가

[커맨드 매개변수1 매개변수2...]

Build-in 명령어

  • 페이지 넣기
    • 매개변수 : 페이지 코드 또는 페이지 ID
    • 등록된 페이지 내용을 컨텐츠 중간에 삽입
  • 반복 문구 넣기
    • 매개변수 : 반복문구 코드 또는 반목문구 ID
    • 등록된 반복 사용 문구를 컨텐츠 중간에 삽입
  • 포함하기 = 가져오기
    • include

커스텀 명령어 추가

  1. 커스텀 명령어 선언 settings.py 상에 다음과 같이 선언
PAGE_SHORTCODES = {
    "연락처넣기": "contact",
    "다운로드항목": "download",
    "보기": "view",
}
  1. 파라메터 니모닉 선언 편의를 위해서 첫번째 매개변수는 복잡한 내용으로 맵핑 가능
PAGE_TARGET_MAP = {
    "공지사항": "widget/notice.html",
    "FAQ": "widget/faq.html",
}

ex> [보기 공지사항] 의 경우 {% view "widget/notice.html" %} 으로 변환됨.

  1. load 할 모듈 추가 커스텀 테그를 추가하기 위해서 사용 될 templatetags 모듈을 추가. 모든 shortcode 실행 시점 상단에서 load 됨
PAGE_UNPACK_WITH = (
    'home',
    'contact_info',
)

다음과 같이 상단에 포함됨

{% load home %}
{% load contact_info %}

Metadata

Release files for django-page 0.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-page 0.18.0
File Size Uploaded
django-page-0.18.0.tar.gz 35.7 kB Details

Release files / django-page-0.18.0.tar.gz

Download URL django-page-0.18.0.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f91c592d31e7b1177aaa996561857d0114791e3f11e0b60b7eaf3fda72606d0c
BLAKE2b-256 checksum
How to use checksums
9785e855006214d3d435dff025ea6928892ccb34d1f0c79f970a5d9136520dd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.29.1 CPython/3.7.2

Release history Release notifications | RSS feed

This release

0.18.0 This release

1 release file

0.17.0

1 release file

0.16.0

1 release file

0.15.0

1 release file

0.0.14

1 release file

0.0.13

1 release file

0.0.12

1 release file

0.0.11

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page