A Django blog app with features of a standard blogging platform.
An Open-Source Django blogging app like Medium and Real Python. It has features of a standard blogging platform.
There is a standalone version of this django package. You can get it from its GitHub Repo.
Authors Dashboard Page :-------------------------:
Create Article Page :-------------------------:
Authors Profile Details Page :-------------------------:
Home Page | List of Categories Page |
---|---|
Category Articles List Page | Author Articles List Page |
---|---|
Article Detail Page :-------------------------:
To run this app, you will need to follow these 3 steps:
a Laptop
Text Editor or IDE (eg. vscode, PyCharm)
Python 3.6 +
Django 2.2+
```
$ pip install django-bona-blog
```
or
```
$ pipenv install django-bona-blog
```
django_filter, ckeditor, taggit, crispy_forms
and rest_framework
to your INSTALLED_APPS
in settings.py
: INSTALLED_APPS = (
...
'django_filters',
'rest_framework',
'taggit',
'ckeditor',
'ckeditor_uploader',
'crispy_forms',
)
CKEditor Configuration
to settings.py
: # CKEditor Settings
CKEDITOR_UPLOAD_PATH = 'uploads/'
CKEDITOR_IMAGE_BACKEND = "pillow"
CKEDITOR_CONFIGS = {
'default':
{'toolbar': 'full',
'width': 'auto',
'extraPlugins': ','.join([
'codesnippet',
'youtube'
]),
},
}
blog
to INSTALLED_APPS
in settings.py
for your Django project: INSTALLED_APPS = (
...
'blog.apps.BlogConfig',
)
blog.urls, tinmyce.urls and api.urls
to urls.py
of your project:
from django.urls import include
urlpatterns = [
...
path('ckeditor/', include('ckeditor_uploader.urls')),
path('blog/', include('blog.urls')),
path('api/v1/', include('blog.api.v1.routers.routers')),
]
urls.py
of your project: from django.conf.urls.static import static
from django.conf import settings
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
$ python manage.py migrate blog
dashboard
configuration to your project settings.py
: # Account Settings
LOGIN_URL = '/account/login/'
LOGIN_REDIRECT_URL = '/author/dashboard/'
LOGOUT_REDIRECT_URL = '/account/logout/'
email configuration
for account signup and password reset
# Email Settings (Development)
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# Email Settings (Production)
EMAIL_BACKEND = ''
EMAIL_HOST = ''
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ""
EMAIL_PORT = 587
EMAIL_USE_TLS = True
static files configuration
for serving staticfiles
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "blog/static"),]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_FINDERS = [
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
]
media files configuration
for serving media files
# Media files (User uploaded images)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
static files
$ python manage.py collectstatic
$ python manage.py test blog.tests
Project is: done
Created by Williano - feel free to contact me!
You can check out the full license here
This project is licensed under the terms of the MIT license.
git checkout -b feature/fooBar
)git commit -am 'Add some fooBar'
)git push origin feature/fooBar
)