同步操作将从 jackfrued/zhipin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
注册模型管理类时如何去掉重复代码(x)
对接亚马逊S3存储静态资源(x)
多对多关系的处理(x)
Celery的高级用法(x)
关于日志的补充说明(x)
项目上线流程说明(x)
如何解决跨域访问数据的问题(x)
多数据库的配置(x)
WebSocket的应用(x)
pip install channels
settings.py INSTALLED_APPS ---> channels ASGI_APPLICATION = ...
routing.py application = ProtocolTypeRouter({ 'websocket': AuthMiddlewareStack( URLRouter(websocket_urlpatterns) ), })
chatroom/routing.py websocket_urlpatterns = [ path('ws/chat/', ChatConsumer), ]
chatroom/views.py class ChatConsumer(WebsocketConsumer):
def connect(self):
self.accept()
def disconnect(self, code):
pass
def receive(self, text_data=None, bytes_data=None):
pass
pip install channels_redis
settings.py CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': { "hosts": [ ('47.104.31.138', 12345) ], }, }, }
将websocket加入到组中 async_to_sync(self.channel_layer.group_add)( 'chat_channel', self.channel_name ) async_to_sync(channel_layer.send)( 'chat_channel', {'message': '...'} )
项目部署时,需要部署ASGI服务器(Daphne)
daphne -b 本机IP地址 -p 端口 zhipin.asgi:application
Nginx配置反向代理将WebSocket请求路由到Daphe upstream websocket { server 172.31.27.27:8001; } server {
location /ws/ {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
单元测试和视图函数的测试(x)
访问控制的两种方式ACL和RBAC
项目的虚拟化部署(x)
虚拟化容器:Docker
安装Doker
Docker相关命令
下载镜像:docker pull nginx:latest
查看镜像:docker images
删除镜像:docker rmi
创建和运行容器:docker run -d -p 80:80 --name myws nginx:latest
删除容器:docker rm myws2 / docker rm -f myws3
查看运行中的容器:docker ps
停止容器:docker stop myws
启动容器:docker start myws
查看所有容器:docker container ls -a
数据卷操作:
docker run -d -p 80:80
-v /root/code/html:/usr/share/nginx/html
--name myws nginx:latest
创建MySQL容器(多实例):
docker run -d -p 3306:3306 --name mysql571
-v /root/mysql/data1:/var/lib/mysql
-v /root/mysql/log1:/var/log
-e "MYSQL_ROOT_PASSWORD=123456" mysql:5.7.30
docker run -d -p 3308:3306 --name mysql572
-v /root/mysql/data2:/var/lib/mysql
-v /root/mysql/log2:/var/log
-e "MYSQL_ROOT_PASSWORD=123456" mysql:5.7.30
创建Redis容器
docker run -d -p 54321:6379 --name redis-master
redis:5.0.5 redis-server --requirepass 1Qaz2Wsx
进入容器:docker exec -it redis-master /bin/bash
检查容器:docker inspect <容器名>
查看日志:docker logs <容器名>
网络操作:
docker run -d --name redis-slave-1
--link redis-master:redis-master redis:5.0.5
redis-server --slaveof redis-master 6379 --masterauth 1Qaz2Wsx
docker run -d --name redis-slave-2
--link redis-master:redis-master redis:5.0.5
redis-server --slaveof redis-master 6379 --masterauth 1Qaz2Wsx
docker run -d --name redis-slave-3
--link redis-master:redis-master redis:5.0.5
redis-server --slaveof redis-master 6379 --masterauth 1Qaz2Wsx
接口文档的撰写(x)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。