Day0616

Django项目中的遗留问题

需要补充说明的问题

  1. 注册模型管理类时如何去掉重复代码(x)

    • 反射(自省)
    • getattr / setattr
    • inspect.getmembers / ismodule / isclass / isfunction
  2. 对接亚马逊S3存储静态资源(x)

  3. 多对多关系的处理(x)

    • 有关联查询的地方就有可能出现1+N查询问题,严重影响性能
    • 多对一、一对一外键:
      • queryset.select_related(‘user’, ‘district’)
    • 多对多外键:
      • query.prefetch_related(’…’)
      • query.prefetch_related(Prefecth(’…’, queryset=…))
  4. Celery的高级用法

    • 调用异步任务:delay / apply_async
    • 签名:signature / s —> queue / countdown / expires / serializer / queue
    • 原语:group / chain
    • 路由:celery -A … worker -Q queue1,queue2
    • 持久化结果:django-celery-results / django-db
    • 定时任务:django-celery-beat
  5. 关于日志的补充说明

    • https://zhuanlan.zhihu.com/p/27363484
  6. 项目上线流程说明

    • 上线前的检查工作
    • 物理架构
    • 版本控制
    • uWSGI
    • Nginx
    • HTTPS
    • 域名解析
    • 进程管理
    • 高并发架构

尚未讲解的问题

  1. 如何解决跨域访问数据的问题(x)

    • 同源策略:协议相同、域名相同、端口相同
    • 三方库:django-cors-headers
  2. 多数据库的配置(x)

    • DATABASE_ROUTERS = [ … ]
    • db_for_read / db_for_write
  3. WebSocket的应用

  4. 单元测试和视图函数的测试

  5. 访问控制的两种方式ACL和RBAC

  6. 项目的虚拟化部署

    • 虚拟化容器:Docker

    • 安装Doker

      • 更新底层库:yum update
      • 移除旧版本:yum erase -y docker docker-io docker-common docker-engine
      • 安装YUM工具:yum install -y yum-utils
      • 添加YUM仓库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      • 安装依赖项:yum install -y device-mapper-persistent-data lvm2
      • 安装Docker社区版:yum install -y docker-ce
      • 启动Docker:systemctl start docker
    • 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

      • 网络操作:

  7. 接口文档的撰写

    • 使用Swagger自动生成接口文档
      • pip install django-rest-swagger
      • doc_view = get_swagger_view(title=‘招聘网站项目接口文档’)
      • path(‘docs/’, doc_view)
      • REST_FRAMEWORK = {‘DEFAULT_SCHEMA_CLASS’: ‘rest_framework.schemas.coreapi.AutoSchema’}
    • 在线接口文档撰写平台
      • YAPI
      • RAP2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值