luomi16 / Withme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DjangoBlog

A blog system based on python3.8 and Django4.0.

Main Features:

  • Articles, Pages, Categories, Tags(Add, Delete, Edit), edc. Articles and pages support Markdown and highlighting.
  • Articles support full-text search.
  • Complete comment feature, include posting reply comment and email notification. Markdown supporting.
  • Sidebar feature: new articles, most readings, tags, etc.
  • OAuth Login supported, including Google, GitHub, Facebook, Weibo, QQ.
  • Memcache supported, with cache auto refresh.
  • Simple SEO Features, notify Google and Baidu when there was a new article or other things.
  • Simple picture bed feature integrated.
  • django-compressor integrated, auto-compressed css, js.
  • Website exception email notification. When there is an unhandle exception, system will send an email notification.
  • Wechat official account feature integrated. Now, you can use wechat official account to manage your VPS.

Installation:

Change MySQL client from pymysql to mysqlclient, more details please reference pypi , checkout preperation before installation.

Install via pip: pip install -Ur requirements.txt

If you do NOT have pip, please use the following methods to install:

Configuration

Most configurations are in setting.py, others are in backend configurations.

I set many setting configuration with my environment variables (such as: SECRET_KEY, OAUTH, mysql and some email configuration parts.) and they did NOT been submitted to the GitHub. You can change these in the code with your own configuration or just add them into your environment variables.

Files in test directory are for travis with automatic testing. You do not need to care about this. Or just use it, in this way to integrate travis for automatic testing.

In bin directory, we have scripts to deploy with Nginx+Gunicorn+virtualenv+supervisor on linux and Nginx configuration file. You can reference with my article

DjangoBlog DEPLOY INSTRUCTIONS

More deploy detail in this article.

Run

Modify DjangoBlog/setting.py with database settings, as following:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangoblog',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'host',
        'PORT': 3306,
    }
}

Create database

Run the following command in MySQL shell:

CREATE DATABASE `djangoblog` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;

Run the following commands in Terminal:

python manage.py makemigrations
python manage.py migrate

Create super user

Run command in terminal:

python manage.py createsuperuser

Create testing data

Run command in terminal:

python manage.py create_testdata

Collect static files

Run command in terminal:

python manage.py collectstatic --noinput
python manage.py compress --force

Getting start to run server

Execute: python manage.py runserver

Open up a browser and visit: http://127.0.0.1:8000/ , the you will see the blog.

More configurations

More configurations details


About


Languages

Language:Python 83.4%Language:HTML 16.2%Language:Shell 0.2%Language:Dockerfile 0.2%