# IOS超级签名后端 **Repository Path**: yhgitee/ios_super_signature_backend ## Basic Information - **Project Name**: IOS超级签名后端 - **Description**: IOS超级签名后端(Django) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2020-04-23 - **Last Updated**: 2024-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # django初始化模板 #### 介绍 Django rest_framework初始化模板,可直接git clone使用 替换为自己的Git远程仓库: 1. 项目重命名: mv django_initialization_template djangotestproject 2. 先创建一个远程空仓库,如: https://gitee.com/xxx/django_test.git 3. 删除现有项目的远程仓库: cd django_initialization_template && git remote rm origin 4. 添加自己的远程仓库地址: git remote add origin https://gitee.com/xxx/django_test.git 5. 推送代码至新的仓库: git push origin master 删除Git仓库所有提交历史记录: 1. 切换到新的分支: git checkout --orphan latest_branch 2. 缓存所有文件: git add -A 3. 提交跟踪过的文件: git commit -am "init commit" 4. 删除master分支: git branch -D master 5. 重命名当前分支为master: git branch -m master 6. 提交到远程master分支: git push -f origin master 修改项目名称为自己的项目名称(使用pycharm修改可以自动化监测项目名称的关联): 修改app名称自己的app名称名称(使用pycharm修改可以自动化监测项目名称的关联): 安装方式一 是手动编辑各个文件,每次改动之后都要手动执行一系列命令(对应tag版本为v2.0_Gunicorn_Supervisor) 安装方式二 是在方式一的基础上添加Fabric自动化部署,每次更改代码后,无需手动登录远程服务器执行命令(对应tag版本为v3.0_Fabric) #### 安装教程一(生产环境部署 Django + python3 + Pipenv + Gunicorn + Nginx + Supervisord) 1. 安装python3和Pipenv并加载项目 ``` pip3 install pipenv git clone xxx cd xxx # 修改Pipfile中python_version为当前的python3.x版本 pipenv install --deploy --ignore-pipfile # 指定--deploy参数,pipenv将只会安装Pipfile中[package]下指定的依赖 # --ignore-pipfile 将会使pipenv 从Pipfile.lock文件中安装项目依赖 # 验证pip安装情况:pipenv shell 激活虚拟环境后 pip list;退出虚拟环境:exit pipenv run python manage.py makemigrations djangoApp pipenv run python manage.py migrate # 迁移数据库 pipenv run python manage.py collectstatic --noinput # 收集静态文件 静态文件会收集到settings.py文件中配置的STATIC_ROOT目录下 pipenv run python manage.py runserver 0.0.0.0:8000 # 启动项目进行测试 ``` 2. Gunicorn ``` pipenv run gunicorn djangoProject.wsgi -w 4 -k gthread -b 0.0.0.0:8000 # 启动项目进行测试 # 参数说明: # -w 4 表示启动4个worker用于处理请求(一个worker可以理解为一个进程),通常将worker数量设置为CPU核心数的2-4倍 # -k gthread指定每个worker处理请求的方式,根据大佬的实践,指定为gthread的异步模式能获取比较高的性能 # -b 0.0.0.0:8000 将服务绑定到8000端口 # 此时访问页面,样式时丢失的,因为gunicorn不会处理静态文件,静态文件交给nginx ``` 3. Nginx ``` yum install nginx -y systemctl start nginx systemctl enable nginx # 安装nginx并启动 # 修改 /etc/nginx/nginx.conf 配置文件 > Wiki中的nginx.conf # 在 /etc/nginx/conf.d/ 目录下新建xxx.conf文件,如djangoProject.conf,写入内容 > Wiki中的djangoProject.conf systemctl restart nginx # 重启 nginx ``` 4. 关闭DEBUG模式,收集静态文件(使用Fabric自动部署时,已自动匹配生产环境和开发环境,无需修改) ``` DEBUG = False # 修改settings.py中的DEBUG为False,关闭调试模式 pipenv run gunicorn djangoProject.wsgi -w 4 -k gthread -b 127.0.0.1:8000 # 启动项目进行测试 x.x.x.x/api/ ``` 5. Supervisord ``` pip3 install supervisor # 安装supervisor mkdir -p /etc/supervisor/conf.d mkdir -p /var/log/supervisor echo_supervisord_conf > /etc/supervisord.conf # 创建相应目录并生成配置文件 # 修改 /etc/supervisord.conf # [unix_http_server] 版块 file=/run/supervisor.sock # [supervisord] 版块 logfile=/var/log/supervisor/supervisord.log pidfile=/run/supervisord.pid user=root # 添加 # [supervisorctl] 版块 serverurl=unix:///run/supervisor.sock # [include] 版块(先取消注释) files = /etc/supervisor/conf.d/*.ini # 在 /etc/supervisor/conf.d/ 目录下新建项目的ini文件,如:djangoProject.ini > Wiki中的djangoProject.ini(根据实际情况修改) supervisord -c /etc/supervisord.conf # 启动 Supervisor,可将命令加入到rc.local开机自启 supervisorctl -c /etc/supervisord.conf # 进入交互式 supervisorctl 进程管理控制台,使用help查看命令帮助 # 也可以通过 supervisorctl stop xxx 等命令直接管理 ``` #### 安装教程二(生产环境部署 本地使用Fabric自动化部署) 1. 首先在本地开发主机上安装Fabric(本项目中已安装) ``` pipenv install fabric --dev # 因为 Fabric 只需在本地使用,因此使用 --dev 选项,让 Pipenv 将 Fabric 依赖写到 dev-packages 配置下,线上环境就不会安装 Fabric。 ``` 2. 更换settings目录下production.py中的SECRET_KEY(可选) 自动生成django SECRET_KEY网站:[Django Secret Key Generator](https://miniwebtool.com/django-secret-key-generator/) 3. 编写Fabric脚本 Fabric 脚本通常位于 fabfile.py 文件里,因此先在项目根目录下建一个 fabfile.py 文件, 内容 > Wiki fabfile.py (根据实际内容更改) ``` # 执行fabric脚本(本地执行) pipenv run fab -H user@server_ip:port -p --prompt-for-login-password deploy # fab task常用参数说明(task指脚本中用@task装饰器装饰的函数) # -h 使用帮助 # -l 显示一个脚本中可用的task # -f 指定入口文件,fab默认入口文件是:fabfile.py # -H 指定host,格式user@server_ip:port,如 root@192.168.1.1:22 ,支持多host逗号分开 ``` #### 本项目安装 1. yum install redis -y