Skip to content

Latest commit

 

History

History
124 lines (90 loc) · 4.96 KB

README-en.md

File metadata and controls

124 lines (90 loc) · 4.96 KB

DjangoBlog

🌍 English简体中文

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

Build Status codecov Requirements Status license

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部署教程

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:

./manage.py makemigrations
./manage.py migrate

**Attention: ** Before you using ./manage.py, make sure the python command in your system is towards to python 3.6 or above version. Otherwise you may solve this by one of the two following methods:

  • Modify the first line in manage.py, change #!/usr/bin/env python to #!/usr/bin/env python3
  • Just run with: python3 ./manage.py makemigrations

Create super user

Run command in terminal:

./manage.py createsuperuser

Create testing data

Run command in terminal:

./manage.py create_testdata

Collect static files

Run command in terminal:

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

Getting start to run server

Execute: ./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 the issues

If you have any question, please use Issue or send problem descriptions to my email liangliangyy#gmail.com. I will reponse you as soon as possible. And, we recommend you to use Issue.


To Everyone 🙋‍♀️🙋‍♂️

If this project helps you, please submit your site address here to let more people see it.

Your reply will be the driving force for me to continue to update and maintain this project.

🙏🙏🙏