Skip to content

JahooYoung/projectshroud

Repository files navigation

projectshroud

TODOs and Pages

github projects

说明

开发准备

环境

  1. git clone https://github.com/JahooYoung/projectshroud.git
  2. 安装python(3.6或以上), nodejs(LTS版), yarn, redis
  3. 建议使用Virtualenv
  4. pip install -r requirements.txt
  5. settings.py(出于安全原因没有存放于git仓库中)移至projectshroud/子目录下,设置DEBUG = True
  6. (cd frontend; yarn install)(前端依赖改了就要做一次)

数据库配置

  1. 如果使用默认的SQLite,则直接下一步;如果使用MySQL,设置环境变量DJANGO_DB=mysqlMYSQL_USERMYSQL_PSW为MySQL的用户名和密码,并创建一个名为shrouddb的数据库
  2. python manage.py makemigrations backend && python manage.py makemigrations && python manage.py migrate

启动后端开发服务器

  1. python manage.py migrate (数据模式变了就要做一次)
  2. cd frontend && yarn build && cd ..(前端改了就要做一次)
  3. python manage.py runserver
  4. 浏览器访问http://localhost:8000

启动前端开发服务器

  1. cd frontend
  2. yarn serve
  3. 浏览器访问http://localhost:8080

生产环境部署

  1. 准备环境,见环境,并安装Nginx
  2. 构建前端文件:(cd frontend; yarn build)
  3. settings.py(出于安全原因没有存放于git仓库中)移至projectshroud/子目录下,在其中设置DEBUG = False
  4. 安装HTTP/2支持:pip install Twisted[tls,http2]
  5. 配置数据库
    1. 如果使用默认的SQLite,则直接下一步;如果使用MySQL,设置环境变量DJANGO_DB=mysqlMYSQL_USERMYSQL_PSW为MySQL的用户名和密码,并创建一个名为shrouddb的数据库
    2. python manage.py makemigrations backend && python manage.py makemigrations && python manage.py migrate
  6. 配置nginx:可参考nginx.conf,注意修改
    1. 用户为当前登录的用户(第1行)
    2. /path-to-projectshroud/为你的projectshroud路径
    3. /path-to-virtualenv/为你的virtualenv的路径
    4. ssl/为你的https证书路径
  7. 创建日志文件夹:mkdir -p log deploy/daphne
  8. 配置后端ASGI应用守护进程:修改deploy/supervisord.conf中的/home/projectshroud/你的projectshroud路径
  9. 运行nginx:sudo nginx
  10. 运行redis:redis-server (可通过修改redis配置文件来daemonize)
  11. 运行ASGI应用:supervisord -c ./deploy/supervisord.conf

数据模式

models.py

关于自定义UserProfile

使用非Django自带的User Model,必须作为整个项目的第一次migrations 若报错需删除数据库及migrations文件夹,然后python manage.py makemigrations && python manage.py migrate