Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
enjoy-binbin committed Nov 2, 2019
1 parent 5c49e08 commit 833603d
Show file tree
Hide file tree
Showing 46 changed files with 459 additions and 3,552 deletions.
121 changes: 113 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,116 @@
.idea/
__pycache__/
# Binbin
binblog/whoosh_index/*
*.log
log/*
collectedstatic/*
notes/
media/editor/*
media/photo/*
settings.py
binblog-bak.sql
venv/
media/editor/*
binblog/settings.py
binblog/binblog-bak.sql
post/

# Byte-compiled / optimized / DLL files
#__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
#*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# PyCharm
.idea/
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ before_install:
# https://codecov.io && https://coveralls.io
install:
# 安装依赖
- pip install -r requirements.txt
- pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
- pip install python-coveralls
- pip install coverage codecov

Expand Down
25 changes: 12 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### 演示地址:http://13.58.211.105/

基于 `python3.6``Django2.1`的博客系统
基于 `python3.6``Django2.2`的博客系统

- [English_README](./README_EN.md)

Expand All @@ -11,13 +11,12 @@
### 其他说明:

1. 以前第一版django-blog。基于Django1.9的<a href="https://github.com/enjoy-binbin/pyblog">pyblog</a>,前端自己设计的/捂脸。不维护了的
2. 目前博客文章,正在逐步改用写静态页面Github Page的方式记录。<a href="https://github.com/enjoy-binbin/enjoy-binbin.github.io">Github Page</a>,这样我就可以随便写些md格式的push上来就好了。简单快速随意记录
3. 对于使用Docker部署,可以看docker目录下的文件或者看<a href="https://github.com/enjoy-binbin/docker-django-blog">Docker-djangoblog</a>仓库。
2. 对于使用Docker部署,可以看docker目录下的文件或者看<a href="https://github.com/enjoy-binbin/docker-django-blog">Docker-djangoblog</a>仓库。

### 本地开发环境

1. win10 64位
2. 后端技术栈:Python3.6、Django2.1、Djangorestframework 3.9、Celery4
2. 后端技术栈:Python3.6、Django2.2、Djangorestframework 3.9、Celery4
3. 数据库:持久化Mysql,缓存Memcache,消息队列Redis
4. 前端技术栈:Jquery、Bootstrap
5. 开发工具:PyCharm 2018.1
Expand Down Expand Up @@ -115,21 +114,21 @@

#### 部分演示图,没同步到线上环境的

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display2.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display2.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display3.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display3.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display4.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display4.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display5.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display5.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display6.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display6.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display7.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display7.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display8.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display8.png)

![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/display9.png)
![display](https://raw.githubusercontent.com/enjoy-binbin/Django-blog/master/media/display/display9.png)

18 changes: 9 additions & 9 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,20 +118,20 @@ Also forgive my pool english lol. But i am working on it . Thank you so much~

#### Some demo

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display2.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display2.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display3.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display3.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display4.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display4.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display5.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display5.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display6.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display6.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display7.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display7.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display8.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display8.png)

![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/display9.png)
![display](https://github.com/enjoy-binbin/binblog-Django/blob/master/media/display/display9.png)
1 change: 1 addition & 0 deletions binblog/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ def has_permission(self, request):
admin_site = BinBlogAdminSite(name='admin')

admin_site.register(Setting, SettingAdmin) # 站点配置

admin_site.register(Category, CategoryAdmin) # 文章分类
admin_site.register(Article, ArticleAdmin) # 文章
admin_site.register(Comment, CommentAdmin) # 文章评论
Expand Down
3 changes: 1 addition & 2 deletions binblog/settings_docker.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# 自己开发环境内需要把settings_example改成settings.py
# 用于在docker中运行, 在docker中我设置会将此文件重命名为settings.py用于docker的部署
from binblog.settings_example import *
from binblog.settings import *

DEBUG = False # 关闭DEBUG

Expand Down
36 changes: 26 additions & 10 deletions binblog/settings_example.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
"""
Django settings for binblog project.
This is a example settings.py file
Generated by 'django-admin startproject' using Django 2.1.5.
For more information on this file, see
https://docs.djangoproject.com/en/2.1/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.1/ref/settings/
"""

import os
Expand All @@ -23,6 +16,7 @@

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
LOCAL_DEBUG = True # 本地代理static和media可以使用命令python manage.py runserver --insecure

ALLOWED_HOSTS = ['*']

Expand Down Expand Up @@ -62,6 +56,15 @@
'blog.middleware.LoadTimeMiddleware' # 页面加载时间
]

# 是否启用django-debug-toolbar. 需要安装: pip install django-debug-toolbar
DJANGO_DEBUG_TOOLBAR = False # 自己定义的变量, 在urls.py里也需要引入相关路由
if DJANGO_DEBUG_TOOLBAR: # 还有另一种 django-silk可以尝试用
# debug工具, 只有在debug=True才生效, 开发环境内使用, 其实可以抽多个settings.develop.py
INTERNAL_IPS = ['127.0.0.1']
INSTALLED_APPS += ['debug_toolbar', ]
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware', ]
# DEBUG_TOOLBAR_PANELS = [] # 可以自己找更多的插件用

ROOT_URLCONF = 'binblog.urls'

TEMPLATES = [
Expand Down Expand Up @@ -97,8 +100,8 @@
'HOST': '127.0.0.1', # 数据库地址
'TEST': {
'NAME': 'test_db', # 测试数据库名称
'CHARSET': 'utf8', # 测试数据库编码
'COLLATION': 'utf8_general_ci'
'CHARSET': 'utf8mb4', # 测试数据库编码
'COLLATION': 'utf8mb4_general_ci'
},
# 查看mysql配置文件加载顺序 mysqld --help --verbose | grep -A1 -B1 cnf
'OPTIONS': { # 针对 (mysql.W002) MySQL Strict Mode is not set for database connection 'default'的警告
Expand Down Expand Up @@ -183,6 +186,19 @@
'ENGINE': 'utils.whoosh_cn_backend.WhooshEngine', # 自定义使用jieba进行中文分词
'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
},
# 如果要使用Es2作为搜索引擎, 因为看过django-haystack的github, 目前最新版2.8.1只支持Es1.x和Es2.x
# 新的发行版由于作者一直没有更新, github源码中的backend里有支持Es5.x的, 不过自己不够强emmm
# 观察了issue, 原作者时间不够, 希望自己以后对Es深入后有实力去贡献代码, add oil
# 1. 下载安装Es(依赖于java) https://www.elastic.co/cn/downloads/past-releases/elasticsearch-2-4-1
# 2. 安装对应版本的Es包 pip install elasticsearch==2.4.1
# 3. 启动Es, 下载解压后进入bin目录启动bat即可(win), 之后python manage.py rebuild_index重建索引
# 4. 其他不变, runserver后进行搜索尝试, 默认支持了中文分词搜索的, 奇了怪了hhh
# 5. 研究了Es7和elasticsearch-dsl, 不过自己本地上还是测试失败, 于是放弃折腾了, 使用了Es2, 以后好好学下Es
# 'default': {
# 'ENGINE': 'haystack.backends.elasticsearch2_backend.Elasticsearch2SearchEngine',
# 'URL': 'http://127.0.0.1:9200/', # Es默认使用的是9200端口
# 'INDEX_NAME': 'blog', # 索引名称
# },
}
# 自动更新搜索索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
Expand Down
3 changes: 1 addition & 2 deletions binblog/settings_travis.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# 自己环境内需要把settings_example改成settings
from binblog.settings_example import *
from binblog.settings import *

# 覆盖原先settings里的一些配置
# https://docs.travis-ci.com/user/database-setup/
Expand Down
28 changes: 25 additions & 3 deletions binblog/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from django.contrib import admin
from django.urls import path, include
from django.urls import path, include, re_path
from django.conf.urls.static import static
from django.contrib.sitemaps.views import sitemap
from django.conf import settings
Expand Down Expand Up @@ -46,7 +45,30 @@
path('refresh/', refresh_cache, name='refresh'),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.DEBUG:
# 线上模式需要使用nginx来代理这些静态资源, static()其实return了一个 [re_path()对象]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

if settings.DJANGO_DEBUG_TOOLBAR:
# 例如在sql面板中可以看到重复执行的sql语句, 借此可以优化自己的系统
import debug_toolbar

urlpatterns += [path('__debug__/', include(debug_toolbar.urls)), ]

if not settings.DEBUG and settings.LOCAL_DEBUG:
# 本地想调试线上环境可以使用 --insecure参数 Allows serving static files even if DEBUG is False.
# python manage.py runserver --insecure
# 上面的 static()方法在DEBUG=False时是return [], 不会serve media, 可以这样写用于media

# from django.views.static import serve
# from django.urls import re_path
# urlpatterns += [re_path(r'^media/(?P<path>.*$)', serve, {'document_root': settings.MEDIA_ROOT}), ]
# 上面这行又可以仿照static()里的实现, lstrip('/')去掉字符串左边'/'
from django.views.static import serve
import re

urlpatterns += [re_path(r'^%s(?P<path>.*$)' % re.escape(settings.MEDIA_URL.lstrip('/')),
serve, {'document_root': settings.MEDIA_ROOT}), ]

# 全局403 404 500设置
handler403 = 'blog.views.permission_denied'
Expand Down
Loading

0 comments on commit 833603d

Please sign in to comment.