Skip to main content

zenblog_pro porting for django

Project description

django-zenblog_ds

django-zenblog_ds 는 zenblog-pro v1.1.0을 장고에 맞게 포팅한 장고앱이다.

프로젝트에 설치하기

  1. zenblog 앱 및 필요앱을 프로젝트 settings.py 의 INSTALLED_APPS 에 추가한다.
import os
INSTALLED_APPS = [
    ...
    'zenblog',
    'compressor',         # scss 사용하기
    'django_summernote',  # WYSIWYG 에디터 사용하기
    'user',               # user프로필에 사진추가하기 앱
    'hitcount',
    'taggit',
]
  1. 프로젝트의 urls.py에 zenblog 와 summernote 앱을 추가하고 media 경로를 추가한다.
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin

urlpatterns = [
    ...
    path('admin/', admin.site.urls),
    path('', include('zenblog.urls')),
    path('summernote/', include('django_summernote.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  1. settings.py에 필요한 설정을 추가한다.
COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'django_libsass.SassCompiler'),
)
STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
X_FRAME_OPTIONS = 'SAMEORIGIN'

SUMMERNOTE_CONFIG = {
    'attachment_filesize_limit': 4096 * 4096,
    'summernote': {
        'width': '100%',
        'height': '480',
    },
    'lang': 'ko-kr',
}
  1. 블로그를 입력하기 위해서 프로젝트에 데이터베이스를 생성한다.
    python manage.py makemigrations zenblog user
    python manage.py migrate
    python manage.py createsuperuser
  1. http://127.0.0.1:8000/admin 으로 접속하여 블로그를 입력한다.

참고 : SCSS 설치하기
https://www.accordbox.com/blog/how-use-scss-sass-your-django-project-python-way/

  1. django_compressor, django-libsass를 설치한다. 앱을 설치하면 자동으로 설치된다.
pip install django_compressor django-libsass
  1. 프로젝트 settings.py 의 INSTALLED_APPS 에 다음을 추가한다.
import os
INSTALLED_APPS = [
    ...
    'compressor',
]

COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'django_libsass.SassCompiler'),
)

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
]

# compressor 앱을 실행하기 위해서는 STATIC_ROOT가 설정되어 있어야 한다.
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

참고 : WYSIWYG 설치, pillow 설치

  1. django-summernote를 설치한다. 앱을 설치하면 자동으로 설치된다.
pip install django-summernote Pillow
  1. 프로젝트 settings.py 에 다음을 추가한다.
import os
INSTALLED_APPS += ('django_summernote', )
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
X_FRAME_OPTIONS = 'SAMEORIGIN'
  1. 프로젝트의 urls.py에 다음을 추가한다.
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static
# ...
urlpatterns = [
  ...
  path('summernote/', include('django_summernote.urls')),
  ...
]
if settings.DEBUG:
  urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  1. 데이터베이스 마이그레이션 시행

참고 : Disable Dark mode Admin
https://djangolearn.com/p/disable-or-enable-dark-mode-user-interface-in-django-admin-panel

참고 : user 앱
장고의 기본 users 에 사진을 첨부할 수 있는 기능을 추가한 앱이다.
https://www.devhandbook.com/django/user-profile/

참고 : hitcount 사용하기
https://dev.to/thepylot/how-to-track-number-of-hits-views-for-chosen-objects-in-django-django-packages-series-2-3bcb

참고 : taggit 사용하기
https://dev.to/thepylot/how-to-add-tags-to-your-models-in-django-django-packages-series-1-3704

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-zenblog_ds-0.0.5.tar.gz (5.3 MB view hashes)

Uploaded Source

Built Distribution

django_zenblog_ds-0.0.5-py3-none-any.whl (5.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page