Socialhome项目开发环境搭建与开发指南

Socialhome项目开发环境搭建与开发指南

socialhome A federated social home socialhome 项目地址: https://gitcode.com/gh_mirrors/so/socialhome

项目概述

Socialhome是一个基于Django和Vue.js构建的社交网络平台,目前仍在积极开发中,需要更多功能完善和UI优化。本文将为开发者详细介绍如何搭建Socialhome的开发环境,以及相关的开发工作流程。

开发环境准备

系统要求

推荐使用Ubuntu 16.04及以上版本进行开发,也可以使用Alpine 3.6系统。以下是基础依赖:

  • Python 3.10(最低开发版本要求)
  • NodeJS 12.x
  • PostgreSQL数据库服务器
  • Redis内存数据库

安装系统依赖

对于Ubuntu系统,可以使用项目提供的install_ubuntu_dependencies.sh脚本安装所需依赖。Alpine系统则可以使用install_alpine_dependencies.sh脚本。

如果需要使用pytest生成性能分析SVG图,还需要安装graphviz包(提供dot工具)。

Python环境配置

创建虚拟环境

建议使用Python虚拟环境隔离开发环境:

python3 -m venv venv
source venv/bin/activate

安装Python依赖

使用pip-tools工具管理Python依赖:

pip install pip-tools
pip-sync requirements/development.txt

前端资源安装

Socialhome使用npm和Bower管理前端依赖:

npm install
node_modules/.bin/bower install
npm run dev  # 构建前端资源

开发过程中可以使用watch模式自动重建资源:

npm run watch

项目配置

环境变量配置

复制示例环境文件并修改必要配置:

cp .env.example .env

特别注意必须设置SECRET_KEY值,这是Django项目的安全密钥。

数据库设置

使用Docker运行PostgreSQL

docker run -e 'POSTGRES_PASSWORD=socialhome POSTGRES_USER=socialhome POSTGRES_DB=socialhome' \
    --name socialhomedb -d -p '5432:5432' postgres

手动安装PostgreSQL

Ubuntu系统示例:

sudo su - postgres
createuser -s -P socialhome  # 设置密码为'socialhome'
createdb -O socialhome socialhome
exit

数据库迁移

python manage.py migrate

Redis安装

可以使用系统Redis或Docker运行:

docker run --name socialhomeredis -d -p '6379:6379' redis

运行开发服务器

python manage.py runserver

注意:不能使用runserver_plus,因为它不支持Django Channels。

开发工具使用

Django Shell

推荐使用增强版shell:

python manage.py shell_plus

创建超级用户

python manage.py createsuperuser

创建后需要手动确认邮箱:

from allauth.account.models import EmailAddress
EmailAddress.objects.all().update(verified=True)

搜索索引

Socialhome使用搜索索引提高查询效率,开发时需要定期重建索引。

测试相关

测试数据库权限

su - postgres
psql -c "ALTER USER socialhome CREATEDB;"

运行测试

py.test

添加--profile --profile-svg参数可以生成性能分析图。

API路由开发

修改API路由后需要更新前端测试用的URL配置:

python manage.py collectstatic_js_reverse
mv staticfiles/django_js_reverse/js/reverse.js socialhome/frontend/tests/unit/fixtures/Urls.js

代码规范检查

ESLint检查

Socialhome遵循Airbnb和Vue的代码规范:

npm run lint

文档构建

cd docs
make html

Docker开发环境

配置docker-compose

复制示例文件:

cp docker/dev/docker-compose.yml.example ./docker-compose.yml

构建和运行

docker-compose build
docker-compose run django manage migrate
docker-compose run django manage createsuperuser
docker-compose up

默认情况下,Django运行在8000端口,Redis和PostgreSQL不对外暴露端口。

生成测试内容

可以使用管理命令生成虚拟内容:

python manage.py create_dummy_content

使用--help查看可用选项。

获取帮助

开发过程中遇到问题可以参考社区文档或提交issue寻求帮助。

socialhome A federated social home socialhome 项目地址: https://gitcode.com/gh_mirrors/so/socialhome

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍妲葵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值