Django 2.1.7 建立項目

參考文獻

Django 2.2 官方文檔html

近期打算基於django最新版本寫一套監控類管理系統,以該項目爲例,講解django如何建立項目。python

在監控類管理系統,對於運維開發這塊一定存在不少功能模塊,例如 資產管理、中間件監控(memcached、redis等),還有ansible遠程調用批量處理模塊等等。web

這麼多的模塊應該怎麼拆分去寫呢?redis

在django中,項目的組織結構爲一個項目包含多個應用,一個應用對應一個業務模塊。也就是說,上面說的那麼多個功能模塊,能夠分開多個應用去逐個編寫,逐個擊破。數據庫

安裝Django 2.1.7

pip3 install django==2.1.7django

示例

建立項目的名稱爲mysite,完成"資產-中間件"信息的維護,建立應用名稱爲assetinfo。瀏覽器

建立項目

django-admin startproject 項目名稱bash

$ django-admin startproject mysite

$ ls mysite/
manage.py*  mysite/
複製代碼

能夠看到已經建立好了mysite項目目錄。使用pycharm打開項目。服務器

能夠看到項目已經自動建立了很多目錄了,其中裏面存在了一個mysite的文件夾。app

這些目錄和文件的用處是:

  • 最外層的 mysite/ 根目錄只是你項目的容器, Django 不關心它的名字,你能夠將它重命名爲任何你喜歡的名字。
  • manage.py: 一個讓你用各類方式管理 Django 項目的命令行工具。你能夠閱讀 django-admin and manage.py 獲取全部 manage.py 的細節。
  • 裏面一層的 mysite/ 目錄包含你的項目,它是一個純 Python 包。它的名字就是當你引用它內部任何東西時須要用到的 Python 包名。 (好比 mysite.urls).
  • mysite/__init__.py:一個空文件,告訴 Python 這個目錄應該被認爲是一個 Python 包。若是你是 Python 初學者,閱讀官方文檔中的 更多關於包的知識
  • mysite/settings.py:Django 項目的配置文件。若是你想知道這個文件是如何工做的,請查看 Django settings 瞭解細節。
  • mysite/urls.py:Django 項目的 URL 聲明,就像你網站的「目錄」。閱讀 URL調度器 文檔來獲取更多關於 URL 的內容。
  • mysite/wsgi.py:做爲你的項目的運行在 WSGI 兼容的Web服務器上的入口。閱讀 如何使用 WSGI 進行部署 瞭解更多細節。

用於開發的簡易服務器

讓咱們來確認一下你的 Django 項目是否真的建立成功了。若是你的當前目錄不是外層的 mysite 目錄的話,請切換到此目錄,而後運行下面的命令:

$ python3 manage.py runserver

在這裏若是不對urls.py進行修改,直接啓動就會報錯。錯誤參見Django 2.1.7 runserver啓動直接報錯.

首先須要修改urls.py文件代碼以下:

from django.contrib import admin
from django.urls import include, path # 增長導入include方法

urlpatterns = [
    path('admin/', admin.site.urls),
]
複製代碼

而後再次啓動開發服務,以下:

建立應用

使用一個應用開發一個業務模塊,此處建立應用名稱爲assetinfo,完成資產-中間件的信息維護。

建立應用的命令以下: python3 manage.py startapp assetinfo

能夠看到,執行命令以後,就建立了一個應用名的文件夾,並自動生成了相關文件,下面對文件說明以下:

  • _init.py_是一個空文件,表示當前目錄assetinfo能夠看成一個python包使用。
  • tests.py文件用於開發測試用例,在實際開發中會有專門的測試人員,這個事情不須要咱們來作。
  • models.py文件跟數據庫操做相關。
  • views.py文件跟接收瀏覽器請求,進行處理,返回頁面相關。
  • admin.py文件跟網站的後臺管理相關。
  • migrations文件夾以後給你們介紹。

編寫第一個視圖

讓咱們開始編寫第一個視圖吧。打開 assetinfo/views.py,把下面這些 Python 代碼輸入進去:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the assetinfo index.")
複製代碼

這是 Django 中最簡單的視圖。若是想看見效果,咱們須要將一個 URL 映射到它——這就是咱們須要 URLconf 的緣由了。

爲了建立 URLconf,請在 assetinfo 目錄裏新建一個 urls.py 文件。你的應用目錄如今看起來應該是這樣:

在 assetinfo /urls.py 中,輸入以下代碼:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
複製代碼

下一步是要在根 URLconf 文件中指定咱們建立的 assetinfo.urls 模塊。在 test1/urls.py 文件的 urlpatterns 列表裏插入一個 include(), 以下:

from django.contrib import admin
from django.urls import include, path # 增長導入include方法

urlpatterns = [
    path('assetinfo/', include('assetinfo.urls')), # 導入assetinfo應用的urls.py
    path('admin/', admin.site.urls),
]
複製代碼

函數 include() 容許引用其它 URLconfs。每當 Django 遇到 :func:~django.urls.include 時,它會截斷與此項匹配的 URL 的部分,並將剩餘的字符串發送到 URLconf 以供進一步處理。

設計 include() 的理念是使其能夠即插即用。由於應用有它本身的 URLconf( assetinfo/urls.py ),他們可以被放在 "/assetinfo/" , "/fun_assetinfo/" ,"/content/assetinfo/",或者其餘任何路徑下,這個應用都可以正常工做。

如今把 index 視圖添加進了 URLconf。能夠驗證是否正常工做,運行下面的命令:

python3 manage.py runserver

用你的瀏覽器訪問 http://localhost:8000/assetinfo/,你應該可以看見 "Hello, world. You're at the polls index." ,這是你在 index 視圖中定義的。

啓動開發web服務

在開發階段,爲了可以快速預覽到開發的效果,django提供了一個純python編寫的輕量級web服務器,僅在開發階段使用。

運行服務器命令以下:

python3 manage.py runserver ip:port
例:
python3 manage.py runserver
複製代碼

能夠不寫IP和端口,默認IP是127.0.0.1,默認端口爲8000。

相關文章
相關標籤/搜索