English | 中文(简体)
- 多用户(用户头像目前只支持 qq 头像和 gravatar 头像)
- 博客的发布,点赞,编辑,删除
- 支持一级分类和二级分类标签
- 支持文章 markdown 语法,高亮代码,Katex 科学公式,flowchart 流程图
- win10x64 及以上
- Python 3.11.2
- Mysql 8.0.32
- Apache 2.4.46
请先安装好 docker
git clone https://github.com/StarrySky-skyler/Share_And_Talk.git
终端cd
进入项目根目录, 输入以下命令启动
docker compose up -d
输入以下命令停止运行
docker compose stop
输入以下命令删除容器
docker compose down
git clone https://github.com/StarrySky-skyler/Share_And_Talk.git
推荐先创建并进入venv或者其他虚拟环境
pip install wheel
pip install -r requirements.txt
先创建好网站需要的数据库, 使用utf8mb4
编码
打开ShareAndTalk/config.py
# Database settings
dbName = 'share_and_talk'
dbUser = 'root'
dbPassword = 'skyler'
# Email settings
EMAIL_USER = 'Your email'
EMAIL_PASSWORD = 'Your password'
DEFAULT_FROM = 'Your email'
需要配置的字段
dbName
: 数据库名dbUser
: 数据库用户名dbPassword
: 对应用户的密码
输入命令
py manage.py makemigrations
py manage.py migrate
导入示例数据库
py manage.py loaddata backup/example.json
注意:
示例数据库包含
-
一个初始超级管理员, 账号是 root, 密码是 skyler
-
一个帮助页面
-
一些默认分类
默认语言: 简体中文
默认时区: 东八区
参见ShareAndTalk/settings.py
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
详细配置参见:
若需修改为其他语言,还需删除ShareAndTalk/settings.py
的以下代码
# Default language
LANGUAGES = [
('zh-hans', '中文(简体)'),
]
用于主页底部的用户反馈
打开ShareAndTalk/config.py
# Database settings
dbName = 'share_and_talk'
dbUser = 'root'
dbPassword = 'skyler'
# Email settings
EMAIL_USER = 'Your email'
EMAIL_PASSWORD = 'Your password'
DEFAULT_FROM = 'Your email'
字段含义
EMAIL_USER
: 收件邮箱EMAIL_PASSWORD
: 邮箱秘钥DEFAULT_FROM
: 寄出邮箱地址
详细参考 django 邮箱配置
在本项目根目录下,打开cmd
或者powershell
或者其他终端,输入以下命令
py manage.py createsuperuser
根据提示进行创建即可
- 打开
ShareAndTalk/settings.py
,将
DEBUG = True
改为
DEBUG = False
- 打开
powershell
,进入到仓库根目录后,运行以下命令,将静态文件拷贝到static
文件夹中
py manage.py collectstatic
static
文件夹在运行命令后会自动创建,若需更改文件夹位置,请修改ShareAndTalk/settings.py
的以下代码
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/
STATIC_URL = "static/"
if not DEBUG:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, '/static/'), # Change your static folder here
)
STATIC_ROOT = os.path.join(BASE_DIR,'static') # Change your static folder here
- 配置 apache2 , 参见 Notion 笔记
网站用户上传文件位置保存在uploads
文件夹中,如需更改,请定位到ShareAndTalk/settings.py
末尾的以下代码
# mdeditor
X_FRAME_OPTIONS = 'SAMEORIGIN'
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
将MEDIA_ROOT
修改为包含绝对路径的字符串即可
- 恢复表结构(进入mysql)
mysql> source backup/db_structure.sql;
- 还原数据库数据
py manage.py loaddata backup/xxx.json
- Django Shell
py manage.py shell
- 备份json数据
py -Xutf8 manage.py dumpdata > db.json