Docker部署Django项目——基础

1.服务器配置

1.1centos7 系统的安装

centos-7-isos-x86_64安装包下载)

  1. VMware安装
  2. 自定义配置

在这里插入图片描述

  1. 选择对应的系统镜像
    在这里插入图片描述

  2. 一般选择内核4核、内存8g、硬盘80g

  3. 相关配置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2.网络配置

1.2.1查看win电脑虚拟机VMnet8的ip

使用ipconfig查看虚拟机的ip

在这里插入图片描述

1.2.2配置虚拟机VMnet8的ip

在这里插入图片描述
在这里插入图片描述

ip地址与默认网关的最后一位一般设置位1或2

此处配置的ip地址很重要,后续配置的centos的ip地址,是该ip的子网 192.198.192.x  x一般非0、1、2、255等特殊

DNS1:8.8.8.8
DNS2:8.8.4.4

1.2.3 centos中配置

配置网络配置文件

cd /etc/sysconfig/network-scripts/     进入配置文件夹

ls  查看相关文件

vi ifcfg-ens33   编辑配置文件(i进入编写模式  esc退出编写模式  :wq保存并退出)

在这里插入图片描述

ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no

BOOTPROTO=static         # 由原来的dhcp改成static

DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=cfbd5cd7-fa17-48e6-9d13-715f33e1f08d
DEVICE=ens33

ONBOOT=yes              # 由原来的no改成yes
IPADDR=192.198.192.xxx  # 要设置当前主机的IP  (xxx非0、1、2、255)
GATEWAY=192.198.192.2   # 网关
NETMASK=255.255.255.0   # 掩码
DNS1=8.8.8.8            # NDS服务器
DNS2=8.8.4.4            # NDS服务器

开启网络服务

service network restart

重启网络服务

systemctl restart network

检测配置清空

ping www.baidu.com   是否能ping通

1.2.4 系统初始化

  • 关闭selinux

    • 查看状态

      getenforce
      
    • 临时关闭

      setenforce 0
      
    • 永久关闭

      vi /etc/selinux/config
      
      # 设置为disabled
      SELINUX=disabled
      
  • 防火墙

    • 查看防火墙状态

      systemctl status firewalld
      
    • 关闭

      systemctl stop firewalld
      
    • 关闭开机启动防火墙

      systemctl disable firewalld
      
  • net-tools

    yum install net-tools -y
    
  • openssh-server

    yum install openssh-server -y
    
    systemctl start sshd.service
    
    systemctl enable sshd.service
    

ssh便于xshell连接

  • centos常用工具包

    yum install -y wget bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
    

1.3.xshell连接centos虚拟机

XSHELL

输入待连接的虚拟机ip即可

在这里插入图片描述

2.Docker的安装

2.1安装docker-ce社区版

  • 配置repo源

    curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    yum clean all && yum makecache
    
  • 查看可下载版本

    yum list docker-ce --showduplicates | sort -r
    
  • 安装

    # 最新版
    yum install -y docker-ce
    
    # 指定版本
    yum install -y docker-ce-23.0.6
    

2.2 启动docker-ce社区版

  • 设置开机启动

    systemctl enable docker 
    
  • 启动docker

    systemctl start docker  
    
    systemctl restart docker 
    
  • 停止docker

    systemctl stop docker  
    
  • 其他

    ## 查看docker信息
    docker version
    
    ## 查看docker信息
    docker info
    
    ## docker-client
    which docker
    
    ## docker daemon
    ps -ef |grep docker
    

2.3★★★Docker概述★★★

docker的方式,创建的容器不是完整的操作系统,而是充分利用宿主机内核+进程,只是创建了一些必备的资源。

在这里插入图片描述

  • DockerHub,远程镜像仓库。https://hub.docker.com/

    仓库中有官方的一些镜像文件,也有开发者自定义的镜像文件。

  • Images,本地镜像仓库。

    可以去远程仓库下载镜像到本地仓库,后续再根据镜像为“模版”去创建容器。本地的镜像也可以发布到远程镜像库。

    查看本地镜像
    docker images
    

    在这里插入图片描述

    在Dockergub查找ubuntu镜像
    docker search ubuntu
    

    在这里插入图片描述

  • 镜像是个什么样的文件?

    镜像就是充当模版来使用,在他得内部包含打包好了的:运行所需依赖 + 业务代码。
    后期基于镜像一键创建出的容器也就会自动包含依赖和业务代码,直接就可以运行了,不需要再安装+拷贝代码了。

  • container容器

    容器就是根据镜像创造出来的一个个隔离的环境。

    在这里插入图片描述

    2.4 配置镜像下载加速

可以去阿里云等相关网站,找到自己的镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jdkmqzpu.mirror.aliyuncs.com"]
}
EOF


sudo systemctl daemon-reload   载入配置
sudo systemctl restart docker  重启Docker

2.5 设置宿主机网卡转发

sysctl -p /etc/sysctl.d/docker.conf

cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward=1
EOF

3.Docker 应用

3.1应用逻辑

1.获取镜像
	docker pull Ubuntu:xxx(系统版本)	
	docker images  本地镜像

2.构建镜像
	2.1 Dockerfile 
	·在Docker宿主机创建文件
		Dockerfile
		待运行文件
	·命令构建自定义镜像(模板)
	
	2.2基于镜像创建容器+运行

基础命令

docker search 镜像名称    在hub中找镜像
docker pull 镜像名称:版本号   下载镜像

docker images  查看本地镜像
docker build -t 模板名称:版本号 . -f Dockerfile
docker run -d -p 80:8000 模板名称:版本号    (-d能后台运行   -p转发端口 80宿主机端口 8000容器转发端口)   ---创建容易
docker ps  查看正在运行的容器
docker ps -a 查看所有容器
docker rm 容器ID    删除指定容器

3.2构建镜像

3.2.1编写Dockerfile

Dockerfile

# Base images 基础镜像
FROM ubuntu:18.04

#MAINTAINER 维护者信息
LABEL maintainer wupeiqi@live.com

#RUN 执行以下命令
RUN apt update
RUN apt install python3  python3-pip  -y
RUN pip3 install flask
RUN mkdir -p /data/www/

#拷贝文件至工作目录
COPY app.py  /data/www/app.py

#工作目录
WORKDIR /data/www/

#EXPOSE 映射端口
EXPOSE 80

#容器启动时执行命令
CMD ["python3","app.py"]
  • FROM 指定基础镜像,必须为第一个命令
格式:
	FROM <image>
	FROM <image>:<tag>
示例:
	FROM mysql:5.7
注意:
	tag是可选的,如果不使用tag时,会使用latest版本的基础镜像
  • MAINTAINER 镜像维护者的信息
格式:
	MAINTAINER <name>
示例:
	MAINTAINER xxx
    MAINTAINER xxx@live.com
    MAINTAINER xxx <xxx@live.com>
  • ENV
格式:
    ENV <key> <value>
    ENV <key>=<value>
示例:
    ENV myName John
    ENV myCat=fluffy
  • COPY|ADD 添加本地文件到镜像中 app.py /data/www/info/app.py
格式:
	COPY <src>... <dest>
示例:
    ADD hom* /mydir/          # 添加所有以"hom"开头的文件
    ADD test relativeDir/     # 添加 "test" 到 $WORKDIR/relativeDir/
    ADD test /absoluteDir/    # 添加 "test" 到 /absoluteDir/
    
注意:针对压缩包使用ADD的话,会自动解压。
  • WORKDIR 工作目录
格式:
	WORKDIR /path/to/workdir
示例:
    WORKDIR /a  (这时工作目录为/a)

注意:
通过WORKDIR设置工作目录后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行

  • RUN 构建镜像过程中执行命令
格式:
	RUN <command>
示例:
    RUN yum install nginx
    RUN pip install django
    RUN mkdir test && rm -rf /var/lib/unusedfiles

注意:
RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。如果不想使用这些缓存镜像,可以在构建时指定–no-cache参数,如:docker build --no-cache

  • CMD 构建容器后调用,也就是在容器启动时才进行调用
格式:
    CMD ["executable","param1","param2"] (执行可执行文件,优先)
    CMD ["param1","param2"] (设置了ENTRYPOINT,则直接调用ENTRYPOINT添加参数)
    CMD command param1 param2 (执行shell内部命令)
示例:
    CMD ["/usr/bin/wc","--help"]
    CMD ping www.baidu.com

注意:
CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。

  • ENTRYPOINT 设置容器初始化命令,使其可执行化
格式:
    ENTRYPOINT ["executable", "param1", "param2"] (可执行文件, 优先)
    ENTRYPOINT command param1 param2 (shell内部命令)
示例:
    ENTRYPOINT ["/usr/bin/wc","--help"]

注意:
ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令

  • EXPOSE 暴漏端口
格式:
    EXPOSE <port> [<port>...]
示例:
    EXPOSE 80 443
    EXPOSE 8080
    EXPOSE 11211/tcp 11211/udp
注意:
    就是一个端口的标识,实际开发时,没什么意义。因为端口的映射会在run命令时进行指定。

3.2.2 构建镜像

构建指令

docker build -t v1:0.01 . -f Dockerfile 含有缓存构建镜像(创建的中间镜像会被缓存,并会在下次构建中使用)

docker build -t v1:0.01 . -f Dockerfile --no-cache 不含缓存

[root@192 crm]# docker build  -t v0:0.1  .  -f Dockerfile 

[root@192 crm]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
v1             0.01      0dd632180107   3 minutes ago   513MB
ubuntu         18.04     5a214d77f5d7   20 months ago   63.1MB
centos         latest    5d0da3dc9764   20 months ago   231MB

3.3容器

根据创建的镜像(通常使用id)去创建容器并启动

[root@192 crm]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
v1             0.01      0dd632180107   3 minutes ago   513MB
ubuntu         18.04     5a214d77f5d7   20 months ago   63.1MB
centos         latest    5d0da3dc9764   20 months ago   231MB


[root@192 crm]# docker run -d -p 80:8000  cd885cb29f41
[root@192 crm]# docker ps
CONTAINER ID   IMAGE          COMMAND            CREATED          STATUS          PORTS      
93352e1c52ec   cd885cb29f41   "python3 app.py"   42 seconds ago     Up              42 

3.4 案例分析

3.4.1 基础指令案例

  • 创建Dockerfile文件
# Base images 基础镜像
FROM ubuntu:18.04

#MAINTAINER 维护者信息
LABEL maintainer xxxi xxxi@live.com

# 环境变量
ENV PRO_PATH /data/www

#RUN 执行以下命令
RUN mkdir -p PRO_PATH

#RUN 执行以下命令
RUN mkdir -p $PRO_PATH/mediea

#COPY 拷贝文件至工作目录
COPY *.py  $PRO_PATH/

#ADD 拷贝文件至工作目录+解压
ADD *.tgz  $PRO_PATH/mediea/

#指定工作目录/data/www/
WORKDIR /data/www/
  • 构建镜像:
docker build  -t v1:0.01  .  -f Dockerfile1
  • 创建容器:
# 创建容器,退出结束(因为容器中没有前台进程)
docker run v1:0.01

# 创建容器,主动创建一个前台的输入进程
docker run -i v1:0.01
docker run -i v1:0.01 bash
docker run -i v1:0.01 sh

# 创建容器,主动创建一个前台的输入进程,不卡宿主机
docker run -di v1:0.01 
docker run -di v1:0.01 bash
docker run -di v1:0.01 sh

# 创建容器,主动创建一个ping的进程
docker run centos ping baidu.com

# 创建容器,主动创建一个ping的进程,不卡住宿主机(-d 后台运行不会影响宿主主机)
docker run -d centos ping baidu.com

# 创建容器,主动创建一个终端+输入输出进程,进入容器内交互(退出容器停止,但不删除容器)
docker run -ti centos bash
docker run -ti centos /bin/sh
docker run -ti v0:0.1 bash

# 创建容器,并进入容器内,退出时结束容器后,自动删除。
docker run -ti --rm centos bash

# ############ 在正式开发时 ###############
# 创建容器(编辑镜像,让容器启动时自动创建一个前台进程)
docker run -d v0:0.1

# 后期想要进入正在存活的容器
docker exec -it 容器ID bash
# 返回所有容器的id
docker ps -aq

# 批量停止容器
docker stop `docker ps -aq`

# 批量删除容器
docker rm `docker ps -aq`

3.4.2 CMD案例

CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。

容器启动时,必须要有一个前台进程,一般在容器创建后去启动时,基于CMD运行一个前台进程。

  • 构建镜像:
docker build  -t v1:0.2  .  -f Dockerfile2
  • 创建容器+启动:
# 创建容器,由镜像中有前台线程,用-d参数,别卡主屏幕
docker run -d v1:0.2
# 后面的命令会覆盖CMD
docker run -d v1:0.2  ping pythonav.com
docker run -d v1:0.2  tail -f /data/www/app.py

3.4.3 ENTRYPOINT案例

与CMD不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。

Dockerfile中只允许有一个ENTRYPOINT命令,多定义会覆盖前面的设置,而只执行最后的ENTRYPOINT指令

  • 构建镜像:
docker build  -t v1:0.4  .  -f Dockerfile4
  • 创建容器+启动:
# 创建容器,由镜像中有前台线程,用-d参数,别卡主屏幕
docker run -d v1:0.4
# 后面的命令不会覆盖ENTRYPOINT,而是当成参数向后传入给ENTRYPOINT
docker run -d v1:0.4  ping pythonav.com
docker run -d v1:0.4  tail -f /data/www/app.py

3.5 Django项目的部署

3.5.1 编写Dockerfile

# Base images 基础镜像
FROM centos:7.9.2009

#MAINTAINER 维护者信息
MAINTAINER xxx@live.com


# GCC编译器
RUN yum install gcc -y

# Python依赖
RUN yum install -y zlib zlib-devel bzip2 bzip2-devel ncurses ncurses-devel readline readline-devel openssl openssl-devel  xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel tk tk-devel  mysql-devel python-devel libffi-devel

# wget
RUN yum install wget -y

# 目录
RUN mkdir -p /data/
WORKDIR /data/

# SQLite升级
RUN wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz  --no-check-certificate
RUN tar -zxvf sqlite-autoconf-3420000.tar.gz
WORKDIR /data/sqlite-autoconf-3420000
RUN ./configure
RUN make && make install
ENV LD_LIBRARY_PATH="/usr/local/lib"

# Python3.9环境
WORKDIR /data/
RUN wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
RUN tar -xvf Python-3.9.5.tgz
WORKDIR /data/Python-3.9.5/
RUN ./configure
RUN make && make install
RUN pip3.9 config set global.index-url config set global.index-url https://mirrors.aliyun.com/pypi/simple/

# git
RUN yum install git -y
RUN git config --global user.name "武沛齐"
RUN git config --global user.email "wupeiqi@live.com"

# git拉代码
WORKDIR /data/
RUN git clone https://gitee.com/wupeiqi/blog.git


# 虚拟环境
RUN pip3.9 install virtualenv
RUN virtualenv  /envs/dj --python=python3.9
RUN /envs/dj/bin/pip3.9 install django==3.2

# 运行项目
WORKDIR /data/blog

CMD ["/envs/dj/bin/python","manage.py","runserver","0.0.0.0:9000"]

3.5.2 构建镜像

docker build -t dj:1.0  .  -f Dockerfile

3.5.3 启动容器

# 测试启动
docker run -p 80:9000 --rm dj

# 正经启动
docker run -d -p 80:9000 dj:1.0

3.5.4 镜像导出/导入

后期在项目部署时,会经常使用:CentOS + Python3.9.5 的环境,为了避免每次都编译生成,我们可以自己制作一个【CentOS + Python3.9.5 】的基础镜像,便于后续使用。

  • 导出
docker image save dj:1.0 > centos76py39dj3.2.tgz

在这里插入图片描述

  • 导入

导入前确保所有存在的镜像无重名镜像ps -a

docker image load -i centos76py39dj3.2.tgz

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467118.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

膨胀 卷积

1.作用 Dilated convolution、Atrous convolution 增大感受野保持原输入大小 2.膨胀因子 描述的是相邻元素之间的距离 r 2 3.gridding effect 不合理的多个膨胀卷积之前&#xff0c;设计的膨胀因子不合理导致&#xff0c;在增大感受野的同时丢失了细节信息。 丢失&…

计算机组成原理-1-计算系统概论

1. 计算系统概论 文章目录 1. 计算系统概论1.0 课程概貌1.1 计算机系统简介1.2 计算机的硬件框图1.3 计算机的工作步骤1.4 计算机硬件的主要技术指标 本笔记参考哈工大刘宏伟老师的MOOC《计算机组成原理&#xff08;上&#xff09;_哈尔滨工业大学》、《计算机组成原理&#xf…

简历信息泄露?如何用图数据库技术解决简历泄露事件的反欺诈挑战

“金三银四”&#xff0c;又到了春招黄金期&#xff0c;但个人简历泄露的数据安全问题诸见报端&#xff0c;甚至在此前的3.15晚会报道中就揭露过招聘平台上的简历信息被泄露&#xff0c;不法分子通过各种渠道获取到简历&#xff0c;并用于欺诈活动&#xff0c;形成了一套庞大的…

2023年度VSCode主题推荐(个人常用主题存档)

前言 早在2018年的时候发了一篇关于VSCode主题风格推荐——VS Code 主题风格设置&#xff0c;时过境迁&#xff0c;如今常用的主题皮肤早已更替。 今天下午在整理VSCode插件的时候&#xff0c;不小心把常用的那款&#xff08;亮色&#xff09;主题插件给删除了&#xff0c;无…

18 优先级队列

priority_queue介绍 1.优先级队列是一种容器适配器&#xff0c;根据弱排序标准&#xff0c;它的第一个元素总是最大的 2.此上下文类似于堆&#xff0c;堆中可以随时插入元素&#xff0c;检索最大堆元素 3.优先队列实现为容器适配器&#xff0c;容器适配器即将特定容器类封装作…

科普文之五分钟轻松入门Generative AI

1. 引言 最近&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;在行业内带来了巨大的变动。还记得 2022 年 11 月推出的 ChatGPT 吗&#xff1f;在短时间内&#xff0c;它就成为了有史以来用户数量最快突破 1 亿的产品。 人工智能已经存在了很长一段时间&…

二叉树算法

递归序 每个节点都能回到3次! 相当于2执行完然后返回了代码会往下走,来到3节点 小总结: 也就是4节点先来到自己一次,不会执行if,先调用自己左边的那个函数,但是是null,直接返回。 这个函数执行完了,就会回到自己,调用自己右边的那个函数,结果又是空,又返回,回到…

Hive SQL必刷练习题:连续问题 间断连续(*****)

问题描述&#xff1a; 1&#xff09; 连续问题&#xff1a;找出连续三天&#xff08;或者连续几天的啥啥啥&#xff09;。 2&#xff09; 间断连续&#xff1a;统计各用户连续登录最长天数&#xff0c;间断一天也算连续&#xff0c;比如1、3、4、6也算登陆了6天 问题分析&am…

Kotlin进阶之协程从上车到起飞

公众号「稀有猿诉」 原文链接 Kotlin进阶之协程从上车到起飞 通过前面的一篇文章我们理解了协程的基本概念&#xff0c;学会协程的基本使用方法&#xff0c;算是正式入门了&#xff0c;接下来就是要深入的学习技术细节和高级使用方法&#xff0c;以期完全掌握Kotlin协程…

等保测评的知识

结合自己所学的知识和网络上的一些知识做个小总结。 目录 一、概念&#xff1a; 二、等级划分&#xff1a; 三、技术要求&#xff1a; 四、管理要求&#xff1a; 五、等保测评实施过程&#xff1a; 六、典型的网络架构&#xff1a; 一、概念&#xff1a; 全称为信息安全等级保…

HarmonyOS NEXT应用开发之Web获取相机拍照图片案例

介绍 本示例介绍如何在HTML页面中拉起原生相机进行拍照&#xff0c;并获取返回的图片。 效果预览图 使用说明 点击HTML页面中的选择文件按钮&#xff0c;拉起原生相机进行拍照。完成拍照后&#xff0c;将图片在HTML的img标签中显示。 实现思路 添加Web组件&#xff0c;设置…

mysql索引(聚簇索引,非聚簇索引:回表)( innodb 引擎库表设计注意事项)

索引文件存放位置 MyISAM 引擎每个表 都会有3个文件&#xff1a;表结构 &#xff08;.frm&#xff09; 表数据 &#xff08; .MYD&#xff09; 索引 &#xff08;.MYI&#xff09; InnoDB 引擎每个表 都会有2个文件&#xff1a;表结构 &#xff08;.frm&#xff09;表数据索引…

flex 布局实现局部 区域滚动

需求描述&#xff1a; 头部固定不动&#xff0c;内容部分区域滚动 一、实现代码 1、实现逻辑 1. 最外层父元素&#xff0c;必须要flex布局&#xff0c;并且宽度、高度撑满可视化区域 >代码为 width: 100vw;height: 100vh; 2. 只给滚动区域设置 flex:1; overflow: scroll…

定义一个符号常量,并计算

这段代码的输出结果是什么 #include <stdio.h> #define PI 32 int main() { int iPI*2; printf("i%d\n",i);} 是7。 我问了一下AI&#xff0c;AI也回答错了&#xff0c;这是个值得注意的地方。

Error response from daemon Get server gave HTTP response to HTTPS client

使用docker compose拉起docker镜像时&#xff0c;若出现如下报错 Error response from daemon: Get "https://devops.test.cn:5000/v2/": http: server gave HTTP response to HTTPS client表示Docker守护进程无法从指定url获取响应&#xff0c; 可能原因有以下&…

苍穹外卖-day09:用户端历史订单模块(理解业务逻辑),商家端订单管理模块(理解业务逻辑),校验收货地址是否超出配送范围(相关API)

用户端历史订单模块 1. 查询历史订单&#xff08;分页查询&#xff09; 1.1 需求分析和设计 产品原型&#xff1a; 业务规则 分页查询历史订单可以根据订单状态查询展示订单数据时&#xff0c;需要展示的数据包括&#xff1a;下单时间、订单状态、订单金额、订单明细&#…

29.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-数据推测功能的算法实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;28.数据推测结果…

数目之差

解法一&#xff1a; 显然只需让多的在限度内最多即可 #include<iostream> #include<algorithm> using namespace std; #define endl \n void solve() {int n, k, num0 0, num1 0;cin >> n >> k;string s;cin >> s;for (int i 0; i < s.s…

配置OGG 如何批量修改源端及目标端序列值_满足客户变态需求学会这招你就赚了

欢迎您关注我的公众号【尚雷的驿站】 **************************************************************************** 公众号&#xff1a;尚雷的驿站 CSDN &#xff1a;https://blog.csdn.net/shlei5580 墨天轮&#xff1a;https://www.modb.pro/u/2436 PGFans&#xff1a;ht…

YOLOv9改进策略:注意力机制 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;用于微小目标检测的上下文增强和特征细化网络ContextAggregation&#xff0c;助力小目标检测 yolov9-c-ContextAggregation summary: 971 layers, 51002153 parameters, 51002121 gradients, 238.9 GFLOPs 改…