https://www.charmcode.cn/ , django个人博客代码.
线上地址 https://www.charmcode.cn/
之前看到了国光的这个django项目 https://github.com/sqlsec/Django-Hexo-Matery 感觉前端页面特别炫酷,就拿来用了,但是部署了一下感觉还是有部分bug, 于是就自己修改了下样式,本来也不打算分享的代码的,感觉现在博客也都写前后端分离了,最后想想还是分享出来把。
我做了那些操作
- 样式部分修改(包括admin后台字段样式调整)。
- 部分数据增加缓存(如配置信息)。
- 优化了部分视图函数查询的方法(重复的查询操作抽取到models了)。
- 搜索文章功能完善(原博客没有搜索)。
- 评论功能自己重写(评论模块完全重写)。
- 配置信息和目录接口是按自己想法拆分(感觉组织还行)。
- 增加了django-debug-toolbar工具分析性能调试
项目结构
.
|____djangoBlog // 整个项目根目录
| |______init__.py // 导入celery配置文件
| |____celery.py // celery配置
| |____urls.py // 全局路由
| |____wsgi.py // 自带wsgi文件
| |____settings // 配置文件
| | ____init__.py // 根据环境变量不同导入配置文件区分
| | |____base_setting.py // 导入 共同的配置文件
| | |____develop // 开发环境
| | | |______init__.py // 导出当前文件夹下的配置
| | | |____celery_setting.py
| | | |____editor_setting.py
| | | |____mysql_setting.py // 注意 mysql 有报错 mysqlclient 1.3.13 or newer is required; you have 0.9.3
| | | |____redis_setting.py
| | |______init__.py
| | |____production // 生产环境配置
| | | |______init__.py // 同上
| | | |____celery_setting.py
| | | |____editor_setting.py
| | | |____mysql_setting.py
|_|_|_|____redis_setting.py
|____apps // 应用模块文件夹
| |______init__.py
| |____article // 文章模块
| | |____templatetags
| | | |____custom_tag.py
| | |____migrations
| | | |______init__.py
| | |____models.py
| | |______init__.py
| | |____apps.py
| | |____admin.py
| | |____tests.py
| | |____urls.py
| | |____views.py // 视图逻辑
|____uploads // 上传文件目录
| |____editor
|____deployment // 部署文件配置
| |____nginx
| | |____nginx.conf
| |____supervisor
| |____djangoBlog.ini
|____templates // 模版文件夹
| |____article_tag.html
| |____index.html
| |____about.html
| |____base.html
| |____tag.html
| |____category.html
| |____404.html
| |____article_category.html
| |____banner.html
| |____detail.html
| |____archive.html
|____Pipfile.lock
|____logging // 日志文件夹
| |____celery_work.log
| |____warn.log
| |____error.log
| |____info.log
| |____celery_beat.log
|_|____djangoBlog.log
|____EXTENDS_USAGES.md // 扩展配置 说明 方便自己查看
|____requirements.text // 依赖环境
|____manage.py //
|____README.md // 项目说明
|____Pipfile
|____requirements-dev.txt
|____.gitignore
如何使用
配置条件准备
mysql 配置(文章数据等存储)
djangoBlog/settings/develop/mysql_setting.py 下修改
redis 配置(部分数据缓存)
djangoBlog/settings/develop/redis_setting.py 下修改
github 配置(用于第三方登录)
可以去这里免费申请
如果不会操作可参考我对应博客
djangoBlog/settings/base_setting.py下修改
# Github 第三方登录
GITHUB_CLIENT_ID = ""
GITHUB_CLIENT_SECRET = ""
GITHUB_CALL_ADD = "" # 回调地址
先安装pipenv
Python版本建议3.6+
pipenv install --python 3.6 # 注意 --python空格3.6
安装依赖
pip install -r requirements.txt
pip install -r requirements-dev.txt
数据库迁移
生成对应的orm迁移映射文件
python manage.py makemigrations
#或者 python manage.py makemigrations article
生成表
python manage.py migrate
启动
python manage.py runserver 127.0.0.1:8010
django admin后台
使用的是simple ui
# use simpleui
https://simpleui.88cto.com/docs/simpleui/doc.html#%E4%BB%8B%E7%BB%8D
创建用户
python manage.py createsuperuser
后台路径
http://localhost:8010/xadmin
部署线上
settings.py 设置 STATIC_ROOT 路径, nginnx
python manage.py collectstatic
可参考deployment
文件夹下的配置文件
新增评论
没有回复和通知, 可以通过钉钉消息提醒,但是感觉没几个人评论,就没加。
需要GitHub第三方登录
- 个人博客 Django 评论模块开发总结【一】Github第三方登陆
- 个人博客 Django 评论模块开发总结【二】数据表以及接口设计
- 个人博客 Django 评论模块开发总结【三】评论样式实现
- 个人博客 Django 评论模块开发总结【四】JavaScript逻辑,请求渲染校验数据
常见报错
- django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
# 解决办法:
https://stackoverflow.com/questions/55657752/django-installing-mysqlclient-error-mysqlclient-1-3-13-or-newer-is-required
- ConnectionResetError: [Errno 54] Connection reset by peer
Exception happened during processing of request from ('127.0.0.1', 59095)
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socketserver.py", line 654, in process_request_thread
...
ConnectionResetError: [Errno 54] Connection reset by peer
// 参考
https://code.djangoproject.com/ticket/31091
https://github.com/django/django/commit/934acf1126995f6e6ccba5947ec8f7561633c27f
- django.db.utils.InternalError: (1060, "Duplicate column name 'xxx field v_company'")
报这个错时,说数据库里面 已经有这个字段了,先删掉数据库里面的字段 在迁移.
from https://github.com/wxy2077/djangoBlog
No comments:
Post a Comment