」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Django 專案中使用 Poetry

如何在 Django 專案中使用 Poetry

發佈於2024-11-01
瀏覽:739

首先您需要在電腦上安裝詩歌。有很多方法可以做到這一點,我使用brew(brew install詩)下載它。您可以透過適當的方式從Poetry自己的網站下載。

但讓我們先簡單了解詩是什麼以及它與 virtualenv 有何不同

Poetry是一個管理Python專案和相依性的工具,可以更輕鬆地處理套件管理和專案結構。它允許開發人員以簡單的方式定義和管理依賴項、建立虛擬環境並處理專案版本控制。

與 venv 的差異:

  • VirtualEnv:venv 是一個標準的 Python 模組,用於創建隔離的虛擬環境,其中依賴項與全域環境分開安裝。然而,venv 本身並不管理專案依賴關係;你通常需要使用 pip 之類的東西來安裝依賴項並手動追蹤它們。

  • Poetry:另一方面,Poetry 不僅創造虛擬環境,也自動管理依賴關係。它使用 pyproject.toml 檔案來追蹤依賴項、版本和專案配置。 Poetry 也透過處理版本控制和打包來簡化 Python 套件的發布。

綜上所述,venv 在創建隔離環境的同時,Poetry 提供了更全面的專案管理解決方案,包括依賴解析和打包工具。

安裝Poetry後,我們來創建Django專案:

thehormat@Pawn Desktop % mdkir DjangoPoetry
thehormat@Pawn DjangoPoetry % cd DjangoPoetry 
thehormat@Pawn DjangoPoetry % poetry init

This command will guide you through creating your pyproject.toml config.

Package name [djangopoetry]:  DjangoPoetry 
Version [0.1.0]:  
Description []:  We learn Poetry
Author [HormatHamidov , n to skip]:  TheHormat
License []:  
Compatible Python versions [^3.12]:  

Would you like to define your main dependencies interactively? (yes/no) [yes] no
Would you like to define your development dependencies interactively? (yes/no) [yes] no 
Generated file

[tool.poetry]
name = "djangopoetry"
version = "0.1.0"
description = "We learn Poetry"
authors = ["TheHormat"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.12"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"


Do you confirm generation? (yes/no) [yes]  

然後我們將會有一個這樣的文件:
How to use Poetry in Django project

太好了,現在讓我們繼續吧。我們需要將 Django 添加到我們的專案中。但在此之前我們需要先啟動詩歌,就像virtualenv邏輯一樣:

thehormat@Pawn DjangoPoetry % poetry shell
Creating virtualenv djangopoetry-5djS955q-py3.12 in /Users/thehormat/Library/Caches/pypoetry/virtualenvs
Spawning shell within /Users/thehormat/Library/Caches/pypoetry/virtualenvs/djangopoetry-5djS955q-py3.12
thehormat@Pawn DjangoPoetry % emulate bash -c '. /Users/thehormat/Library/Caches/pypoetry/virtualenvs/djangopoetry-5djS955q-py3.12/bin/activate'
(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry % 

(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry %

⬆️ 如果您在終端中看到此結果,則詩歌處於活動狀態。

然後讓我們將Django加入專案:

(djangopoetry-py3.12) hormathamidov@Pawn DjangoPoetry % poetry add django
Using version ^5.1.2 for django

Updating dependencies
Resolving dependencies... (0.3s)

Package operations: 3 installs, 0 updates, 0 removals

  - Installing asgiref (3.8.1)
  - Installing sqlparse (0.5.1)
  - Installing django (5.1.2)

Writing lock file

我們將在 toml 檔案中看到這樣的新奇之處。這意味著我們已經成功設定了 django:

[tool.poetry.dependencies]
python = "^3.12"
django = "^5.1.2"

現在,我們終於可以正常安裝並運行 django 了:

(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry % django-admin startproject core .
(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry % python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 14, 2024 - 18:22:05
Django version 5.1.2, using settings 'core.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

這是令人驚訝的結果:
How to use Poetry in Django project

我想為 Poetry 提供一點幫助,您可以從 Poetry 自己的文件中了解更多。

結論

?您不必驚慌,經過詳細搜索後,您可以輕鬆找到並修復它。

? ️ 在您離開之前...如果您有任何問題/建議/想法,請在下面給我留言。

如果您喜歡這個,請告訴我們您對漂亮表情符號的感受(?❤️‍?),並且不要忘記關注未來的更新。

這就是我的。我們很快就會談!

— TheHormat ♟️

版本聲明 本文轉載於:https://dev.to/thehormat/how-to-use-poetry-in-django-project-43n1?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • SharpAPI Laravel 整合指南
    SharpAPI Laravel 整合指南
    Welcome to the SharpAPI Laravel Integration Guide! This repository provides a comprehensive, step-by-step tutorial on how to integrate SharpAPI into y...
    程式設計 發佈於2024-11-07
  • 如何將 Firebase 與 Laravel 集成
    如何將 Firebase 與 Laravel 集成
    Laravel and Firebase are two powerful tools that can significantly enhance the development of modern web applications. Laravel, a popular PHP framewor...
    程式設計 發佈於2024-11-07
  • Expo with Redux Toolkit、檔案系統與 Redux Persist:綜合指南
    Expo with Redux Toolkit、檔案系統與 Redux Persist:綜合指南
    Redux Toolkit 是一個流行的函式庫,它透過提供一組實用程式和約定來簡化 Redux 開發。它包括一個減速器和動作創建模式,可以簡化編寫 Redux 邏輯的過程。將 Redux Persist 與 Redux Toolkit 結合可以顯著提高 React Native 應用程式中狀態管理的...
    程式設計 發佈於2024-11-07
  • 如何處理非巢狀 Lambda 閉包中的變數作用域問題?
    如何處理非巢狀 Lambda 閉包中的變數作用域問題?
    Python Lambda 閉包作用域問題將變數封裝在閉包中以將其從函數簽章中刪除是一種常用於高效代碼結構的技術。但是,在非嵌套 lambda 的情況下,閉包保留變數的最終值,從而在嘗試基於迭代變數存取特定值時導致問題。 考慮提供的程式碼片段:names = ['a', 'b', 'c'] def ...
    程式設計 發佈於2024-11-07
  • 如何使用現代 CSS 將按鈕無縫整合到輸入欄位中?
    如何使用現代 CSS 將按鈕無縫整合到輸入欄位中?
    如何使用現代CSS 將按鈕整合到輸入中問題:創建視覺元素其中按鈕無縫整合在輸入欄位中,允許正常的使用者互動、保留文字可見性並保持可存取性和螢幕閱讀器相容性。 解決方案:Flexbox 和表單邊框最佳方法是使用彈性盒佈局以及包含元素(表單)上的邊框:定位:設定具有水平行佈局的彈性盒,允許輸入擴展以填充...
    程式設計 發佈於2024-11-07
  • 核心開發中的 C++:綜合指南
    核心開發中的 C++:綜合指南
    介紹 由於直接硬體存取和最小的運行時開銷,核心開發傳統上是 C 的領域。然而,由於其物件導向的特性,C 在核心程式設計中找到了自己的位置,這可以帶來更乾淨、更易於維護的程式碼。本指南將逐步介紹如何使用 C 進行核心開發,重點是設定環境、建置專案以及使用 C 功能編寫核心程式碼,同時...
    程式設計 發佈於2024-11-07
  • 在 React 專案中實作 CSS 模組
    在 React 專案中實作 CSS 模組
    React 中的 CSS 模組是一種透過自動產生唯一類別名稱來確定 CSS 範圍的方法。這可以防止大型應用程式中的類別名稱衝突並允許模組化樣式。以下是如何在 React 專案中使用 CSS 模組: 1. 設定 預設情況下,React 支援 CSS 模組。您只需使用擴展名 .modul...
    程式設計 發佈於2024-11-07
  • 有哪些資源可用於實現彗星模式?
    有哪些資源可用於實現彗星模式?
    Comet:伺服器推送模式伺服器推送是一種在伺服器和Web 用戶端之間實現雙向通訊的技術,已經獲得了顯著的成果最近的興趣。 Comet 設計模式是作為在 JavaScript 應用程式中實現伺服器推送的一種有前途的方法而出現。本問題探討了 Comet 模式的 jQuery 實作和通用資源的可用性。 ...
    程式設計 發佈於2024-11-07
  • 探索心理健康門診計畫的類型
    探索心理健康門診計畫的類型
    門診心理健康治療方法是一種不強調在醫療機構過夜的方案。這種療法主要在醫生辦公室、醫院或診所提供,在那裡人們可以進行定期治療,以進行高度結構化的定期治療。 在 COVID-19 大流行期間,全球約有 2.75 億名吸毒者。比前幾十年高出近 22%。吸毒成癮的增加導致全美吸毒過量人數創下歷史新高。好消...
    程式設計 發佈於2024-11-07
  • 如何在 C++ Builder 中初始化 OpenGL 幀:逐步指南
    如何在 C++ Builder 中初始化 OpenGL 幀:逐步指南
    如何在C Builder 中初始化OpenGL 幀在C Builder 中的窗體內初始化OpenGL 幀可能是一項具有挑戰性的任務。在嘗試調整現有 OpenGL 程式碼(例如問題中提供的範例)時,您可能會遇到困難。 要正確建立和渲染OpenGL 幀,請依照下列步驟操作:使用TForm::Handle...
    程式設計 發佈於2024-11-07
  • 利用這些罕見的 HTML 屬性來增強您的 Web 開發技能
    利用這些罕見的 HTML 屬性來增強您的 Web 開發技能
    Introduction HTML attributes are most often referred to as the overlooked heroes of web development, playing a crucial role in shaping the st...
    程式設計 發佈於2024-11-07
  • 如何在 Python 中將字串轉換為二進位:ASCII 與 Unicode?
    如何在 Python 中將字串轉換為二進位:ASCII 與 Unicode?
    在Python中將字串轉換為二進位在Python中,您可能會遇到需要將字串表示為二進位數字序列的情況。這對於多種原因都很有用,例如資料加密或二進位檔案操作。 使用 bin() 函數將字串轉換為二進位的最簡單方法就是使用bin()函數。該函數接受一個字串作為輸入,並將其二進位表示形式傳回為字串。例如:...
    程式設計 發佈於2024-11-07
  • 為什麼從 Java 中的匿名內部類別存取外部實例變數需要是 Final?
    為什麼從 Java 中的匿名內部類別存取外部實例變數需要是 Final?
    Java內部類別:為什麼必須使用「最終」外部實例變數在Java中定義匿名內部類別時,您可能會遇到將外部實例變數標記為“final”的要求。本文探討了這個約束背後的原因。 如同提供的程式碼中所提到的,實例變數 jtfContent 必須宣告為 Final 才能在內部類別中存取。這項要求源自於 Java...
    程式設計 發佈於2024-11-07
  • 理解 Python 中的關鍵字參數
    理解 Python 中的關鍵字參數
    When you're programming in Python, knowing how to pass arguments to functions is key for writing clear, flexible, and easy-to-maintain code. One powe...
    程式設計 發佈於2024-11-07
  • 如何防止列印時DIV跨頁分割?
    如何防止列印時DIV跨頁分割?
    列印問題:防止 DIV 跨頁分叉遇到動態 DIV 在頁面之間切成兩半的列印困境?當嘗試列印具有大量可變高度 DIV 元素的冗長文件時,就會出現此問題。 CSS 救援解決方案為了解決此問題,CSS 屬性打破了 -裡面來拯救。透過指定值避免,您可以確保渲染引擎防止 DIV 中途分割。這是程式碼片段:@m...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3