django文件 Django下重用自己寫的app

2021-10-11 07:59:02 字數 4737 閱讀 1176

設計、構建、測試和維護乙個網頁應用有許多任務作要做。許多python 和 django 專案都有常見的共同問題。可重用將會節省這些重複性工作。

可重用性在python 中是一種常見的方式。python包索引 (pypi) 具有廣泛的包,你可以在你自己的python程式中使用。查閱一下django packages中已經存在的可重用的應用,你可以結合它們到你的專案。django 自身也只是乙個python 包。這意味著你可以獲取已經存在的python包和django應用並將它們融合到你自己的網頁專案。你只需要編寫你專案的獨特的部分。

假設您正在開始乙個新專案,需要乙個像我們一直在進行的投票應用程式。你如何讓該應用可重用?幸運的是,你已經在正確的道路上。在教程 3中,我們看到我們可以如何使用include將投票應用從專案級別的urlconf 解耦。在本教程中,我們將更進一步,讓你的應用在新的專案中容易地使用並隨時可以發布給其它人安裝和使用。

包?應用?

python 包 按照簡單重用的方式,將具有相關性的python**歸為一組。乙個包包含乙個或多個python檔案(也叫做「模組」)。

包可以通過import foo.bar 或from foo import bar 匯入。如果乙個目錄(例如polls)想要形成乙個包,它必須包含乙個特殊的檔案__init__.py,即使這個檔案為空。

乙個django 應用 只是乙個python包,它特意用於django專案中。乙個應用可以使用常見的django 約定,例如具有models、tests、urls和views 子模組。

python 打包的目前狀態因為有多種工具而混亂不堪。對於本教程,我們打算使用setuptools來構建我們的包。它是推薦的打包工具(已經與distribute 分支合併)。我們還將使用pip來安裝和解除安裝它。現在你應該安裝這兩個包。如果你需要幫助,你可以參考如何使用pip安裝django。你可以使用同樣的方法安裝setuptools。

python 打包 會將你的應用預處理成一種特殊的格式, 這樣安裝和使用就會變得簡單。django 自己是以非常相似的方式打包起來的。對於乙個像polls這樣的小應用,這個過程不是太難。

首先,在你的django專案之外,為polls建立乙個父目錄。稱這個目錄為django-polls。

為你的應用選擇乙個名字

當為你的包選擇乙個名字時,檢查一下pypi中的資源以避免與已經存在的包有名字衝突。當建立乙個要發布的包時,在你的模組名字前面加上django-通常很有用。 這有助於其他正在查詢django應用的人區分你的應用是專門用於django的。

將polls 目錄移動到django-polls目錄。

建立乙個包含以下內容的檔案django-polls/readme.rst:

django-polls/readme.rst

polls

question, visitors can choose between a fixed number of answers.

detailed documentation is in the "docs" directory.

quick start

'polls',

2. include the polls urlconf in your project urls.py like this::

url(r'^polls/', include('polls.urls')),

3. run `python manage.py migrate` to create the polls models.

4. start the development server and visit

5. visit to participate in the poll.

建立乙個django-polls/license檔案。如何選擇license超出本教程的範圍,但值得一說的是, 公開發布的**如果沒有license是毫無用處的。django和許多與django相容的應用以bsd license 發布;然而,你可以隨便挑選自己的license。只需知道你所選擇的license,將決定誰能使用你的**.

下一步我們將建立乙個setup.py 檔案,它提供如何構建和安裝該應用的詳細資訊。該檔案完整的解釋超出本教程的範圍,setuptools 文件 有很好的解釋。建立乙個檔案django-polls/setup.py,其內容如下:

預設只有python模組和包會包含進包中。如果需要包含額外的檔案,我們需要建立乙個檔案。上一步提到的setuptools 文件對這個檔案有更詳細的討論。如果要包含模板、readme.rst和我們的license 檔案,建立乙個檔案django-polls/,其內容如下:

django-polls/

include license

include readme.rst

recursive-include polls/static *

recursive-include polls/templates *

將詳細的文件包含進你的應用中,它是可選的,但建議你這樣做。建立乙個空的目錄django-polls/docs用於將來存放文件。向django-polls/新增另外一行:

recursive-include docs *

試著通過python setup.py sdist 構建你的包(從django-polls的內部執行)。這會建立乙個dist目錄並構建乙個新包:django-polls-0.1.tar.gz。

更多關於打包的資訊,參見python 的 打包和分發專案的教程。

使用你自己的包

因為,我們將polls 目錄移到專案的目錄之外,它不再工作了。我們將通過安裝我們的新的django-polls包來修復它。

安裝成某個使用者的庫

以下的步驟將安裝django-polls 成某個使用者的庫。使用者級別的安裝比系統級別的安裝有許多優點,例如將包執行在普通使用者級別上不但不會影響系統服務還不會影響其他使用者

注意根據使用者的安裝仍然可以影響以該使用者身份執行的系統工具,所以virtualenv 是更健壯的解決辦法(見下文)。

安裝這個包,使用pip(你已經安裝好它了,對吧?):

pip install --user django-polls/dist/django-polls-0.1.tar.gz

幸運的話,你的django 專案現在應該又能正常工作了。請重新執行伺服器以證實這點。

若要解除安裝這個包,使用pip:

pip uninstall django-polls

發布你的應用:

既然我們已經打包並測試過django-polls,是時候與世界共享它了!如果它不僅僅是個例子,你現在可以:

將這個包用郵件傳送給朋友。

上傳這個包到你的**上。

上傳這個包到乙個公開的倉庫,例如python 包索引 (pypi)。python packaging user guide 上面有 很好的教程 講述具體流程。

使用 virtualenv 安裝python 包

前面,我們將poll 安裝成乙個使用者的庫。它有一些缺點:

修改這個使用者的庫可能影響你的系統上的其它python 軟體。

你將不可以執行這個包的多個版本(或者具有相同名字的其它包)。

特別是一旦你維護幾個django專案,這些情況就會出現。如果確實出現,最好的解決辦法是使用virtualenv。這個工具允許你維護多個分離的python環境,每個都具有它自己的庫和包的命名空間。

Django介面文件

swagger 是乙個規範和完整的框架,用於生成 描述 呼叫和視覺化restful風格的web服務。總體目標是使客戶端和檔案系統源 作為伺服器以同樣的速度來更新。當介面有變動時,對應的介面文件也會自動更新。pip install django rest swagger rest framework ...

django官方文件 Models

1.模型是對資料的描述,乙個模型對應資料庫中的乙個表 2.模型的基類都是django.db.models.model model中的每乙個屬性代表資料庫中的乙個字段 3.欄位 fields model中的fields是一組資料庫欄位的列表,欄位有類屬性指定 欄位的引數 field option nu...

配置django 介面文件docs

1 首先開啟你的專案的urls,在裡面導包 from rest framework.documentation import include docs urls並在下面配置docs的路徑 url r docs include docs urls title 介面文件 之後在cmd中執行 python...