Gitee 持續集成與交付(CI/CD)篇

Gitee 持續集成與交付(CI/CD)篇 🚀


文章目錄

  • Gitee 持續集成與交付(CI/CD)篇 🚀
    • 🎯 什么是 CI/CD?
    • 🌟 Gitee Go 介紹
      • ? 核心特性
      • 🎨 支持的技術棧
    • 🚀 提交項目進行 CI/CD
      • 第一步:創建 .gitee-ci.yml 文件
      • 第二步:配置項目設置
      • 第三步:提交代碼觸發構建
    • 📦 制品庫配置
      • Maven 制品庫配置
      • Docker 制品庫配置
      • npm 制品庫配置
    • ?? 流水線配置示例與實踐
      • Java Spring Boot 項目示例
      • Vue.js 前端項目示例
      • Python Django 項目示例
    • 🔧 高級配置技巧
      • 1. 多環境部署策略
      • 2. 條件執行和規則
      • 3. 并行執行和依賴管理
      • 4. 緩存優化策略
    • 🛠? 常見問題與解決方案
      • 1. 構建超時問題
      • 2. 內存不足問題
      • 3. 網絡連接問題
      • 4. 權限問題
    • 📊 監控與通知
      • 1. 構建狀態通知
      • 2. 性能監控
    • 🎯 最佳實踐總結
      • 1. 配置文件組織
      • 2. 流水線設計
      • 3. 安全考慮
      • 4. 監控和維護
    • 🚀 進階學習方向


嘿,寶子們!今天咱們來聊聊 Gitee 的持續集成與交付(CI/CD)!這可是現代軟件開發的核心技能之一,掌握了它,你的開發效率絕對能起飛!??

🎯 什么是 CI/CD?

持續集成(Continuous Integration,CI):開發者頻繁地將代碼集成到主干分支,每次集成都通過自動化構建來驗證,從而盡早發現集成錯誤。

持續交付(Continuous Delivery,CD):在持續集成的基礎上,將集成后的代碼自動部署到類生產環境,確保代碼隨時可以安全地發布到生產環境。

持續部署(Continuous Deployment):更進一步,將通過測試的代碼自動部署到生產環境。

🌟 Gitee Go 介紹

Gitee Go 是 Gitee 推出的持續集成服務,為開發者提供了完整的 CI/CD 解決方案。它具有以下特點:

? 核心特性

  • 云原生架構:基于容器技術,支持多種運行環境
  • 豐富的模板:提供多種語言和框架的構建模板
  • 靈活配置:支持 YAML 配置文件,自定義構建流程
  • 集成度高:與 Gitee 代碼倉庫無縫集成
  • 成本優化:按需使用,降低運維成本

🎨 支持的技術棧

  • 前端:Vue.js、React、Angular、小程序等
  • 后端:Java、Python、Node.js、Go、PHP 等
  • 移動端:Android、iOS、Flutter、React Native 等
  • 其他:Docker、Kubernetes、靜態網站等

🚀 提交項目進行 CI/CD

第一步:創建 .gitee-ci.yml 文件

在項目根目錄創建 .gitee-ci.yml 文件,這是 Gitee Go 的配置文件:

# Gitee Go CI/CD 配置文件
image: node:16  # 指定運行環境stages:- build- test- deployvariables:NODE_ENV: production# 構建階段
build_job:stage: buildscript:- npm install- npm run buildartifacts:paths:- dist/expire_in: 1 hour# 測試階段
test_job:stage: testscript:- npm run test- npm run lintcoverage: '/Lines\s*:\s*(\d+\.?\d*)%/'# 部署階段
deploy_job:stage: deployscript:- echo "部署到生產環境"- scp -r dist/* user@server:/var/www/html/only:- master

第二步:配置項目設置

  1. 進入項目設置

    • 打開 Gitee 項目頁面
    • 點擊「服務」→「Gitee Go」
    • 啟用 CI/CD 服務
  2. 配置觸發條件

    # 觸發條件配置
    only:- master      # 僅在 master 分支觸發- develop     # 開發分支except:- feature/*   # 排除功能分支# 或者使用規則
    rules:- if: '$CI_COMMIT_BRANCH == "master"'- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"'
    
  3. 設置環境變量

    • 在項目設置中添加敏感信息
    • 如數據庫密碼、API 密鑰等
    • 在 CI/CD 中通過 $VARIABLE_NAME 使用

第三步:提交代碼觸發構建

# 提交代碼
git add .
git commit -m "feat: 添加 CI/CD 配置"
git push origin master

提交后,Gitee Go 會自動檢測到 .gitee-ci.yml 文件并開始執行構建流程!🎉

📦 制品庫配置

制品庫用于存儲構建產物,如 JAR 包、Docker 鏡像、npm 包等。

Maven 制品庫配置

  1. 創建制品庫

    • 進入 Gitee 企業版
    • 創建 Maven 類型制品庫
    • 獲取倉庫地址和認證信息
  2. 配置 pom.xml

    <distributionManagement><repository><id>gitee-releases</id><name>Gitee Release Repository</name><url>https://gitee.com/api/packages/your-org/maven</url></repository><snapshotRepository><id>gitee-snapshots</id><name>Gitee Snapshot Repository</name><url>https://gitee.com/api/packages/your-org/maven</url></snapshotRepository>
    </distributionManagement>
    
  3. CI/CD 中發布制品

    publish_job:stage: deployscript:- mvn clean compile package- mvn deploy -s settings.xmlartifacts:paths:- target/*.jar
    

Docker 制品庫配置

docker_build:stage: buildscript:- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHAservices:- docker:dind

npm 制品庫配置

npm_publish:stage: deployscript:- npm config set registry https://gitee.com/api/packages/your-org/npm/- npm publishonly:- tags

?? 流水線配置示例與實踐

Java Spring Boot 項目示例

# Java Spring Boot CI/CD 配置
image: maven:3.8.1-openjdk-11stages:- build- test- package- deployvariables:MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"cache:paths:- .m2/repository/# 構建階段
build:stage: buildscript:- mvn $MAVEN_CLI_OPTS compileartifacts:paths:- target/expire_in: 1 hour# 單元測試
unit_test:stage: testscript:- mvn $MAVEN_CLI_OPTS testartifacts:reports:junit:- target/surefire-reports/TEST-*.xmlpaths:- target/site/jacoco/coverage: '/Total.*?([0-9]{1,3})%/'# 代碼質量檢查
code_quality:stage: testscript:- mvn sonar:sonar -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_TOKENonly:- master- develop# 打包
package:stage: packagescript:- mvn $MAVEN_CLI_OPTS package -DskipTestsartifacts:paths:- target/*.jarexpire_in: 1 weekonly:- master- tags# Docker 鏡像構建
docker_build:stage: packagescript:- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .- docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA- docker push $CI_REGISTRY_IMAGE:latestservices:- docker:dindonly:- master# 部署到測試環境
deploy_test:stage: deployscript:- echo "部署到測試環境"- ssh test-server "docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"- ssh test-server "docker stop myapp || true"- ssh test-server "docker run -d --name myapp -p 8080:8080 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"environment:name: testurl: http://test.example.comonly:- develop# 部署到生產環境
deploy_prod:stage: deployscript:- echo "部署到生產環境"- ssh prod-server "docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"- ssh prod-server "docker stop myapp || true"- ssh prod-server "docker run -d --name myapp -p 8080:8080 $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"environment:name: productionurl: http://prod.example.comwhen: manual  # 手動觸發only:- master

Vue.js 前端項目示例

# Vue.js 前端 CI/CD 配置
image: node:16stages:- install- lint- test- build- deployvariables:NODE_ENV: productioncache:paths:- node_modules/- .npm/# 安裝依賴
install_dependencies:stage: installscript:- npm ci --cache .npm --prefer-offlineartifacts:paths:- node_modules/expire_in: 1 hour# 代碼檢查
lint_code:stage: lintscript:- npm run lint- npm run format:checkdependencies:- install_dependencies# 單元測試
unit_test:stage: testscript:- npm run test:unit -- --coverageartifacts:reports:coverage_report:coverage_format: coberturapath: coverage/cobertura-coverage.xmlpaths:- coverage/dependencies:- install_dependencies# E2E 測試
e2e_test:stage: testscript:- npm run test:e2eartifacts:paths:- tests/e2e/screenshots/- tests/e2e/videos/when: on_failuredependencies:- install_dependencies# 構建
build_app:stage: buildscript:- npm run buildartifacts:paths:- dist/expire_in: 1 weekdependencies:- install_dependenciesonly:- master- develop# 部署到 CDN
deploy_cdn:stage: deployscript:- echo "部署到 CDN"- aws s3 sync dist/ s3://my-bucket/ --delete- aws cloudfront create-invalidation --distribution-id $CLOUDFRONT_ID --paths "/*"dependencies:- build_appenvironment:name: productionurl: https://myapp.example.comonly:- master# 部署到測試環境
deploy_staging:stage: deployscript:- echo "部署到測試環境"- rsync -avz --delete dist/ user@staging-server:/var/www/html/dependencies:- build_appenvironment:name: stagingurl: https://staging.myapp.example.comonly:- develop

Python Django 項目示例

# Python Django CI/CD 配置
image: python:3.9stages:- test- build- deployvariables:PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"DJANGO_SETTINGS_MODULE: "myproject.settings.test"cache:paths:- .cache/pip/- venv/before_script:- python -V- pip install virtualenv- virtualenv venv- source venv/bin/activate- pip install -r requirements.txt# 代碼質量檢查
flake8:stage: testscript:- flake8 .# 安全檢查
safety:stage: testscript:- safety check# 單元測試
django_test:stage: testscript:- python manage.py test- coverage run --source='.' manage.py test- coverage report- coverage xmlartifacts:reports:coverage_report:coverage_format: coberturapath: coverage.xmlservices:- postgres:13variables:POSTGRES_DB: test_dbPOSTGRES_USER: test_userPOSTGRES_PASSWORD: test_passDATABASE_URL: "postgresql://test_user:test_pass@postgres:5432/test_db"# Docker 構建
docker_build:stage: buildscript:- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHAservices:- docker:dindonly:- master# 部署
deploy_production:stage: deployscript:- echo "部署到生產環境"- ssh production-server "docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"- ssh production-server "docker-compose down"- ssh production-server "docker-compose up -d"environment:name: productionurl: https://myapp.example.comwhen: manualonly:- master

🔧 高級配置技巧

1. 多環境部署策略

# 多環境部署配置
.deploy_template: &deploy_templatescript:- echo "部署到 $ENVIRONMENT 環境"- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA- docker-compose -f docker-compose.$ENVIRONMENT.yml down- docker-compose -f docker-compose.$ENVIRONMENT.yml up -ddeploy_dev:<<: *deploy_templatestage: deployvariables:ENVIRONMENT: devenvironment:name: developmenturl: https://dev.myapp.comonly:- developdeploy_staging:<<: *deploy_templatestage: deployvariables:ENVIRONMENT: stagingenvironment:name: stagingurl: https://staging.myapp.comonly:- masterdeploy_prod:<<: *deploy_templatestage: deployvariables:ENVIRONMENT: prodenvironment:name: productionurl: https://myapp.comwhen: manualonly:- tags

2. 條件執行和規則

# 條件執行示例
build_feature:stage: buildscript:- echo "構建功能分支"rules:- if: '$CI_COMMIT_BRANCH =~ /^feature\/.*$/'when: on_success- when: neverbuild_hotfix:stage: buildscript:- echo "構建熱修復分支"rules:- if: '$CI_COMMIT_BRANCH =~ /^hotfix\/.*$/'when: on_success- when: never# 基于文件變更的條件執行
test_frontend:stage: testscript:- npm run testrules:- changes:- "frontend/**/*"- "package.json"when: on_success- when: nevertest_backend:stage: testscript:- mvn testrules:- changes:- "backend/**/*"- "pom.xml"when: on_success- when: never

3. 并行執行和依賴管理

# 并行執行示例
stages:- build- test- integration- deploy# 并行構建
build_frontend:stage: buildscript:- npm run buildartifacts:paths:- frontend/dist/build_backend:stage: buildscript:- mvn packageartifacts:paths:- backend/target/# 并行測試
test_unit:stage: testscript:- npm run test:unitparallel: 3  # 并行運行 3 個實例test_integration:stage: testscript:- npm run test:integrationdependencies:- build_frontend- build_backend# 集成測試
integration_test:stage: integrationscript:- docker-compose up -d- npm run test:e2e- docker-compose downdependencies:- test_unit- test_integration

4. 緩存優化策略

# 緩存優化配置
variables:PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"NPM_CONFIG_CACHE: "$CI_PROJECT_DIR/.cache/npm"MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.cache/maven"# 全局緩存
cache:key: "$CI_COMMIT_REF_SLUG"paths:- .cache/- node_modules/- .m2/repository/policy: pull-push# 作業級緩存
build_job:stage: buildcache:key: "build-$CI_COMMIT_REF_SLUG"paths:- dist/- target/policy: pushscript:- npm install- npm run buildtest_job:stage: testcache:key: "build-$CI_COMMIT_REF_SLUG"paths:- dist/- target/policy: pullscript:- npm run test

🛠? 常見問題與解決方案

1. 構建超時問題

# 設置超時時間
build_job:stage: buildtimeout: 2h  # 設置 2 小時超時script:- echo "長時間構建任務"- sleep 3600  # 模擬長時間任務

2. 內存不足問題

# 優化內存使用
build_job:stage: buildvariables:NODE_OPTIONS: "--max-old-space-size=4096"  # 增加 Node.js 內存限制MAVEN_OPTS: "-Xmx2g -Xms1g"  # 設置 Maven 內存script:- npm run build

3. 網絡連接問題

# 網絡重試配置
before_script:- apt-get update -qq- apt-get install -y -qq curl# 設置重試機制- |for i in {1..3}; donpm install && breakecho "重試第 $i 次..."sleep 5done

4. 權限問題

# 權限配置
before_script:- chmod +x scripts/deploy.sh- chown -R $(whoami) /var/www/htmldeploy_job:stage: deployscript:- ./scripts/deploy.sh

📊 監控與通知

1. 構建狀態通知

# 通知配置
after_script:- |if [ "$CI_JOB_STATUS" == "success" ]; thencurl -X POST -H 'Content-type: application/json' \--data '{"text":"? 構建成功: '$CI_PROJECT_NAME' - '$CI_COMMIT_REF_NAME'"}' \$SLACK_WEBHOOK_URLelsecurl -X POST -H 'Content-type: application/json' \--data '{"text":"? 構建失敗: '$CI_PROJECT_NAME' - '$CI_COMMIT_REF_NAME'"}' \$SLACK_WEBHOOK_URLfi

2. 性能監控

# 性能監控
performance_test:stage: testscript:- npm run build- lighthouse --chrome-flags="--headless" --output=json --output-path=./lighthouse.json https://myapp.comartifacts:reports:performance: lighthouse.json

🎯 最佳實踐總結

1. 配置文件組織

  • 使用模板和繼承減少重復代碼
  • 將敏感信息存儲在環境變量中
  • 合理使用緩存提高構建速度
  • 設置合適的超時時間

2. 流水線設計

  • 快速失敗原則:將快速的檢查放在前面
  • 并行執行:獨立的任務可以并行運行
  • 分層構建:合理劃分構建階段
  • 增量構建:只構建變更的部分

3. 安全考慮

  • 不在日志中輸出敏感信息
  • 使用最小權限原則
  • 定期更新依賴和鏡像
  • 啟用代碼掃描和安全檢查

4. 監控和維護

  • 設置構建通知
  • 監控構建時間和成功率
  • 定期清理舊的制品
  • 優化構建性能

🚀 進階學習方向

  1. GitOps 實踐:使用 Git 作為部署的單一真實來源
  2. 多云部署:在不同云平臺間進行部署
  3. 藍綠部署:零停機時間的部署策略
  4. 金絲雀發布:漸進式的功能發布
  5. 基礎設施即代碼:使用代碼管理基礎設施

好啦,寶子們!Gitee 的 CI/CD 就介紹到這里啦!🎉 掌握了這些技能,你就能實現真正的自動化開發流程,讓代碼從提交到部署一氣呵成!

記住,CI/CD 不僅僅是工具,更是一種開發文化和理念。持續學習,持續改進,你的開發效率一定會越來越高的!💪


下一篇我們將深入探討Gitee 在 DevOps 中的應用篇,敬請期待哦!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912275.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912275.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912275.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習:PyTorch卷積神經網絡圖像分類案例分享

本文目錄&#xff1a; 一、了解CIFAR-10數據集二、案例之導包三、案例之創建數據集四、案例之搭建神經網絡&#xff08;模型構建&#xff09;五、案例之編寫訓練函數&#xff08;訓練模型&#xff09;六、案例之編寫預測函數&#xff08;模型測試&#xff09; 前言&#xff1a;…

記錄多功能按鍵第二種寫法使用定時器周期間隔判斷.

邏輯是通過定時器溢出周期進行判斷按下次數 比如設置定時器溢出周期為500MS,每次溢出都會判斷按鍵按下次數,如果下個周期前沒有觸發按下,則結束鍵值判斷.并確定觸發鍵值.清空按下次數標志.測試比一個定時器周期按下按鍵次數判斷寫法要穩定... 記錄STM32實現多功能按鍵_stm32一…

【安卓Sensor框架-1】SensorService 的啟動流程

內核啟動后&#xff0c;首個用戶空間進程init&#xff08;pid1&#xff09;解析init.rc配置文件&#xff0c;啟動關鍵服務&#xff08;如Zygote和ServiceManager&#xff09;。 Zygote服務配置為/system/bin/app_process --zygote --start-system-server&#xff0c;后續用于孵…

centos網卡綁定參考

同事整理分享&#xff1a; 1. 加載 Bonding 模塊 modprobe bonding 獲取網卡名稱 ip a 找到接了網線的網卡名稱&#xff0c;記下。 3. 配置物理網卡 創建并編輯 /etc/sysconfig/network-scripts/ifcfg-ens36&#xff08;ifcfg-后面的內容根據上面找到的具體網卡名稱決定&#…

mbedtls ssl handshake error,res:-0x2700

用LinkSDK.c連接第三方云平臺出現現象 解決方案&#xff1a; 在_tls_network_establish函數中加入 mbedtls_ssl_conf_authmode(&adapter_handle->mbedtls.ssl_config, MBEDTLS_SSL_VERIFY_NONE);原因解釋&#xff1a;用連接方式是不用證書認證/跳過服務端認證。

Spring Security 的方法級權限控制是如何利用 AOP 的?

Spring Security 的方法級權限控制是 AOP 技術在實際應用中一個極其強大的應用典范。它允許我們以聲明式的方式保護業務方法&#xff0c;將安全規則與業務邏輯徹底解耦。 核心思想&#xff1a;權限檢查的“門衛” 你可以把 AOP 在方法級安全中的作用想象成一個盡職盡責的“門…

一鍵內網穿透,無需域名和服務器,自動https訪問

cloudflare能將內網web轉為外網可訪問的地址。&#xff08;這和apiSQL有點類似&#xff0c;apiSQ可以將內網數據庫輕松轉換為外網的API&#xff0c;并且還支持代理內網已有API&#xff0c;增強安全增加API Key&#xff0c;以https訪問等等&#xff09; 但Cloudfalre tunnel這個…

Sentinel(二):Sentinel流量控制

一、Sentinel 流控規則基本介紹 1、Snetinel 流控規則配置方式 Sentinel 支持可視化的流控規則配置&#xff0c;使用非常簡單&#xff1b;可以在監控服務下的“簇點鏈路” 或 “流控規則” 中 給指定的請求資源配置流控規則&#xff1b;一般推薦在 “簇點鏈路” 中配置流控規則…

支持PY普冉系列單片機調試工具PY32linK仿真器

PY32 Link是專為 ?PY32系列ARM-Cortex內核單片機?&#xff08;如PY32F002A/030/071/040/403等&#xff09;設計的仿真器&#xff0c;支持全系列芯片的?調試和仿真?功能。?開發環境兼容性?支持主流IDE&#xff1a;?Keil MDK? 和 ?IAR Embedded Workbench?&#xff0c;…

深入解析Python多服務器監控告警系統:從原理到生產部署

深入解析Python多服務器監控告警系統&#xff1a;從原理到生產部署 整體架構圖 核心設計思想 無代理監控&#xff1a;通過SSH直接獲取數據&#xff0c;無需在目標服務器安裝代理故障隔離&#xff1a;單臺服務器故障不影響整體監控多級檢測&#xff1a;網絡層→資源層→服務層層…

JUC:10.線程、monitor管程、鎖對象之間在synchronized加鎖的流程(未完)

一、monitor管程工作原理&#xff1a; 首先&#xff0c;synchronized是一個對象鎖&#xff0c;當線程運行到某個臨界區&#xff0c;這個臨界區使用synchronized對對象obj進行了上鎖&#xff0c;此時底層發生了什么&#xff1f; 1.當synchronized對obj上鎖后&#xff0c;synch…

Elasticsearch(ES)分頁

Elasticsearch&#xff08;簡稱 ES&#xff09;本身不適合傳統意義上的“深分頁”&#xff0c;但提供了多種分頁方式&#xff0c;每種適用不同場景。我們來詳細講解&#xff1a; 一、基本分頁&#xff08;from size&#xff09; 最常用的分頁方式&#xff0c;類似 SQL 的 LIM…

原生微信小程序:用 `setData` 正確修改數組中的對象項狀態(附實戰技巧)

&#x1f4cc; 背景介紹 在微信小程序開發中&#xff0c;我們經常需要修改數組中某個對象的某個字段&#xff0c;比如&#xff1a; 列表中的某一項展開/收起多選狀態切換數據列表中的臨時標記等 一個常見的場景是&#xff1a; lists: [{ show: true }, { show: true }, { s…

Oracle 臨時表空間相關操作

一、臨時表空間概述 臨時表空間&#xff08;Temporary Tablespace&#xff09;是Oracle數據庫中用于存儲臨時數據的特殊存儲區域&#xff0c;其數據在會話結束或事務提交后自動清除&#xff0c;重啟數據庫后徹底消失。主要用途包括&#xff1a; 存儲排序操作&#xff08;如OR…

從靜態到動態:Web渲染模式的演進和突破

渲染模式有好多種&#xff0c;了解下web的各種渲染模式&#xff0c;對技術選型有很大的參考作用。 一、靜態HTML時代 早期&#xff08;1990 - 1995年&#xff09;網頁開發完全依賴手工編寫HTML&#xff08;HyperText Markup Language&#xff09;和CSS&#xff08;層疊樣式表…

Flask(六) 數據庫操作SQLAlchemy

文章目錄 一、準備工作二、最小化可運行示例? 補充延遲綁定方式&#xff08;推薦方式&#xff09; 三、數據庫基本操作&#xff08;增刪改查&#xff09;1. 插入數據&#xff08;增&#xff09;2. 查詢數據&#xff08;查&#xff09;3. 更新數據&#xff08;改&#xff09;4.…

PYTHON從入門到實踐7-獲取用戶輸入與while循環

# 【1】獲取用戶輸入 # 【2】python數據類型的轉換 input_res input("請輸入一個數字\n") if int(input_res) % 10 0:print("你輸入的數是10的倍數") else:print("你輸入的數不是10的倍數") # 【3】while循環&#xff0c;適合不知道循環多少次…

學習筆記(C++篇)—— Day 8

1.STL簡介 STL(standard template libaray-標準模板庫)&#xff1a;是C標準庫的重要組成部分&#xff0c;不僅是一個可復用的組件庫&#xff0c;而且是一個包羅數據結構與算法的軟件框架。 2.STL的六大組件 先這樣&#xff0c;下一部分是string的內容&#xff0c;內容比較多&a…

ant+Jmeter+jenkins接口自動化,如何實現把執行失敗的接口信息單獨發郵件?

B站講的最好的自動化測試教程&#xff0c;工具框架附項目實戰一套速通&#xff0c;零基礎完全輕松掌握&#xff01;自動化測試課程、web/app/接口 實現AntJMeterJenkins接口自動化失敗接口郵件通知方案 要實現只發送執行失敗的接口信息郵件通知&#xff0c;可以通過以下步驟實…

惡意Python包“psslib“實施拼寫錯誤攻擊,可強制關閉Windows系統

Socket威脅研究團隊發現一個名為psslib的惡意Python包&#xff0c;該軟件包偽裝成提供密碼安全功能&#xff0c;實則會突然關閉Windows系統。這個由化名umaraq的威脅行為者開發的軟件包&#xff0c;是對知名密碼哈希工具庫passlib的拼寫錯誤仿冒&#xff08;typosquatting&…