Pages

Tuesday, 7 September 2021

用 django开发的BBS项目:website-by-fengjinqi

此项目包含多用户注册,话题模块,发布文章,文章评论,课程、社区BBS以及消息提示,关注,采用邮箱注册,激活验证登录,以及QQ注册登录,招募作者发布教程在后台管理系统发布, pc采用模板渲染,cms采用vue drf前后分离,登录采用JWT认证登录、移动端采用react开发.

v1.0

适合初学者新手,采取djangorestframework接口开发以及模版功能开发,主要用于新手练手巩固 知识点都有所以导致代码臃肿,下一版本重构简约版,版本也升级 使用django3版本,采取redis缓存等,websocket聊天等下一版本全部采取接口方式开发

# website django 开发的web项目

(喜欢麻烦动动你的小手给个start 谢谢,关于后台登录不成功的问题:请使用邮箱登录)

Python>=3.6

Django>=2.0.12

celery>=3.1.25

coreschema>=0.0.4

django-appconf>=1.0.3

django-celery>=3.2.2

django-filter>=2.0.0

django-haystack>=2.8.1

django-pure-pagination>=0.3.0

django-ranged-response==0.2.0

django-shortuuidfield>=0.1.3

django-simple-captcha>=0.5.9

djangorestframework>=3.9.1

redis>=2.10.6

功能:

V1:

1、多用户注册 目前采用QQ快捷登录以及邮箱注册登录发送验证token 60分钟有效

2、包含用户关注,查看我关注的文章,查看用户等

3、文章包含评论,消息提示

4、教程模块用于招募作者,可以去后台admin系统进行发布教程

5、邮件采用Celery异步发送

6、拥有定时任务 采用Celery redis用做消息队列进行每30分钟采取一次数据,一周进行数据库处理,若出错会及时给管理员发邮件通知

7,社区功能

admin

目前在另外一个项目里,请移步https://github.com/fengjinqi/website-admin 后续完成会打包配置到本项目

采用 vue iview-admin模板开发 ,接口用drf, 作者拥有可以在admin发布文章,当然也可以在前台发布,同时拥有发布教程的功能 登录采用JWT方式登录

移动端

项目已启动开发,采用react开发,

架构

react、react-router-dom、redux、react-redux、redux-thunk,antd-mobile,项目地址:https://github.com/fengjinqi/website-react-webapp

使用方法

1、下载python3安装

2、在虚拟环境下进入项目根目录 pip3 install requirements.txt

3、安装redis 并进行启动

4、settings进行数据库等各种配置

5、项目根目录下创建 congfig.ini 邮箱等密码配置文件 并填写

[email]

password = xxx

[QQ]

client_id = xxx

key = xxx

[AppKey] #此key是聚合数据的,若想使用其它的需要去apps/article/tasks文件中getApi方法修改地址并且修改getApi方法中对应的获取字段

key = xxx

6、因目前消息表需要发送人字段,所有先创建一个超级管理员账号再注册新用户

#7、 因我本地配置了seo,初次访问可能会报错,原因是未配置seo

目前测试环境用的sqlite数据库,若用其他数据库请自行setting配置修改

运行前请先migrate

定时任务:需配置Appkey

Celery -A website worker -l info

Celery -A website beat -l info

supervisord -c conf/supervisord.conf

pip安装supervisord pip install supervisor

生成配置文件 echo_supervisord_conf > /etc/supervisord.conf

启动:supervisord -c /etc/supervisord.conf

关闭:supervisorctl shutdown

service mysqld start 【进程管理】

  1. 启动supervisord管理的所有进程

supervisorctl start all

  1. 停止supervisord管理的所有进程

supervisorctl stop all

  1. 启动supervisord管理的某一个特定进程

supervisorctl start program-name // program-name为[program:xx]中的xx

  1. 停止supervisord管理的某一个特定进程

supervisorctl stop program-name // program-name为[program:xx]中的xx

  1. 重启所有进程或所有进程

supervisorctl restart all // 重启所有

supervisorctl reatart program-name // 重启某一进程,program-name为[program:xx]中的xx

  1. 查看supervisord当前管理的所有进程的状态

supervisorctl status

【遇到问题及解决方案】

在使用命令supervisorctl start all启动控制进程时,遇到如下错误

unix:///tmp/supervisor.sock no such file

出现上述错误的原因是supervisord并未启动,只要在命令行中使用命令sudo supervisord启动supervisord即可。

ps aux | grep redis-server

./bin/redis-server /usr/local/redis/etc/redis.conf

#(ps:若有更好的建议或者功能请联系我qq:1218525402,邮箱:fengjinqi@fengjinqi.com)


from https://github.com/fengjinqi/website


No comments:

Post a Comment