1. 程式人生 > >HelloDjango 系列教程:"空空如也"的部落格應用

HelloDjango 系列教程:"空空如也"的部落格應用

文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫

建立部落格應用

我們已經建立了 django 部落格的專案工程,並且成功地運行了它。不過到目前為止這一切都還只是 django 為我們建立的專案初始內容,django 不可能為我們初始化生成部落格程式碼,這些功能性程式碼都得由我們自己編寫。

Django 鼓勵我們把自己編寫的程式碼組織到應用(Application)裡,並且最好是一個應用只提供一種功能。例如我們要開發的 django 部落格,相關的程式碼都放在 blog 這個應用裡。其實應用也沒什麼特殊的,不過是把功能相關的程式碼組織到一個資料夾裡,這個資料夾就成了一個應用(姑且可以這樣理解)。

我們可以在 django 工程目錄下手動地建立一個資料夾,為它取個名字,並且告訴 django 說這是一個應用。但是我們不必做這些無聊的工作,django 已經為我們提供了自動建立應用的命令。

現在就來建立我們的 django 部落格應用,我把它命名為 blog。進入到 manage.py 檔案所在的目錄(即專案根目錄)下,執行 pipenv run python manage.py startapp blog 命令即可建立一個 blog 應用:

> pipenv run python manage.py startapp blog

前面已經說過,manage.py 是我們的工程管理助手。上一篇教程中我們使用了它的 runserver

命令開啟了一個本地開發伺服器,在這裡我們使用 manage.py 的 startapp 命令建立了一個 blog 應用。

應用的目錄結構

用資源管理器開啟 manage.py 檔案所在的目錄,可以看到多了一個 blog 的目錄,該目錄下面的檔案結構如下:

blog\
    __init__.py
    admin.py
    apps.py
    migrations\
        __init__.py
    models.py
    tests.py
    views.py

不同名稱的檔案用於存放特定功能的程式碼,這些將會在後面詳細介紹。總之這個應用的資料夾結構 django 已經為我們建立好了,但它還只是包含各種檔案的一個資料夾而已,django 目前還不知道這是一個應用。我們得告訴 django 這是我們建立的應用,專業一點說就是在 django 的配置檔案中註冊這個應用。

開啟 HelloDjango-blog-tutorial 目錄下的 settings.py 檔案,看名字就知道 settings.py 是一個設定檔案(setting 意為設定),找到 INSTALLED_APPS 設定項,將 blog 應用新增進去。

HelloDjango-blog-tutorial/blogproject/settings.py

## 其他配置項...

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog', # 註冊 blog 應用
]

## 其他配置項...

可以看到 django 已經為我們提供了一些內建的應用,這些應用提供了各種各樣的功能。這就是 django 強大的地方,通用的功能 django 都幫我們寫好了,我們只需編寫與自身業務相關的功能程式碼即可。

每週免費贈送 2 張去往 django 國度的門票!從零基礎一步步帶你飛,快把這張免費的門票轉發給你的小夥伴們吧。

相關推薦

HelloDjango 系列教程"空空如也"的部落應用

文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 建立部落格應用 我們已經建立了 django 部落格的專案工程,並且成功地運行了它。不過到目前為止這一切都還只是 django 為我們建立的專案初始內容,django 不可能為我們初始化生成部落格程式碼,這些功能性程式碼都得由我

HelloDjango 系列教程建立 Django 部落的資料庫模型

文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 設計部落格的資料庫表結構 部落格最主要的功能就是展示我們寫的文章,它需要從某個地方獲取部落格文章資料才能把文章展示出來,通常來說這個地方就是資料庫。我們把寫好的文章永久地儲存在資料庫裡,當用戶訪問我們的部落格時,django

HelloDjango 系列教程第 04 篇Django 遷移、操作資料庫

文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 我們已經編寫了部落格資料庫模型的程式碼,但那還只是 Python 程式碼而已,django 還沒有把它翻譯成資料庫語言,因此實際上這些資料庫表還沒有真正的在資料庫中建立。 遷移資料庫 為了讓 django 完成翻譯,建立好這

HelloDjango 系列教程Django 的接客之道

文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 Web 服務簡單的說就是處理請求,每個請求就像是一個“顧客”。首先熱情地把顧客迎接進來,然後滿足使用者的個性化需求,最後讓顧客心滿意足的離開。Django 作為一個 web 框架,能夠讓開發者有更多的精力和時間去應付複雜多變

第 15 篇優化部落功能的細節,提升使用體驗—— HelloDjango 系列教程

作者:HelloGitHub-追夢人物 文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 在之前的系列教程中,我們已經實現了:文章的釋出、展示、評論等功能,可能認真的小夥伴已經發現這些功能有一些地方設計的不是很好,今天我們就來優化一些體驗和操作上的細節。讓我們的部落格更加完美

第 14 篇交流的橋樑“評論功能”——HelloDjango 系列教程

截止到目前為止我們的 django blog 文章展示部分,已經實現的“八九不離十”了。你以為本系列文章就要結束了嗎?不能夠!新的征程才剛剛開始,HelloDjango 系列文章剛剛過半,後面的文章你將接觸更多部落格系統的細節。向著一個小而全的部落格系統前進、前進、前進,你定會收穫頗多。 今天我們就來開啟部落

TestNG系列教程並行執行測試

方法 執行時間 str 軟件 驗證 pac 減少 size 操作系統 並行(多線程)技術在軟件術語裏被定義為軟件、操作系統或者程序可以並行地執行另外一段程序中多個部分或者子組件的能力。TestNG允許我們以並行(多線程)的方式來執行測試。這就意味著基於TestNG測試組件的

樹莓派系列教程1.環境與系統,無顯示器無鍵盤無網線聯網並使用PuTTy與VNC圖形界面遠程登錄

工具 樹莓派 分享 clas http dev vnc圖形界面 gpo 遠程連接 本文所需物品清單: Raspberry Pi 3 Model B 主板、SD卡與讀卡器(用於燒錄系統) 資料整理來源在文尾 需要下載的資源與工具: 推薦系統-Raspbian 樹莓

Java8系列教程Java8編程入門、面向對象編程、高級編程、核心設計模式 DAO設計模式

線程與進程 lamda java程序 thread類 pat 調用 watermark image fab Java8系列教程:Java8編程入門、面向對象編程、高級編程、核心設計模式 —— DAO設計模式01_《Java8編程入門》02001_JAVA發展簡介02002

資訊學奧賽系列教程高精度計算

為什麼要需要高精度計算?      每種計算機語言的基本資料型別,都有一定的範圍限制,在一些科學計算中,當需要運算的算數(加數、減數、乘數、除數)大於基本資料型別所能表示的範圍時,需要通過演算法來實現這些運算,比如200位的兩個數相乘 高精度計算需要解決的問題: 1、資料的

資訊學奧賽系列教程運算子練習二

1、反向輸出三位數         將一個三位數反向輸出,例如輸入358,反向輸出853     輸入:       一個三位數n     輸出:  

資訊學奧賽系列教程C++邏輯運算子

C++中一共有三個邏輯運算子: 1、邏輯與 && 運算子前後兩個條件都為true才為true  2、邏輯或 ||  運算子前後只要有一個條件為true就為true 3、邏輯非 ! 運算子後的表示式取反,非true為false,非false為true

資訊學奧賽系列教程計算機硬體系統練習

計算機硬體基礎知識,在資訊學奧賽初賽中,都是以選擇題形式出現,以下是歷年考題中計算機硬體系統出現的題目 1、微機內的儲存器的地址是以()編址的 A.二進位制 B.字長 C.位元組 D.微處理器的型號 2、某計算機的記憶體容量是640K,這裡的640K容量是指()位元組 A.640

資訊學奧賽系列教程計算機硬體系統和軟體系統

計算機系統: 一個完整的計算機系統有硬體系統和軟體系統構成,如下圖所示 計算機硬體系統: 本節介紹計算機硬體系統,計算機硬體系統由以下四個部分構成: 運算器、控制器(CPU)   儲存器   輸入裝置   輸出裝置

資訊學奧賽系列教程C++語言比較運算子

比較運算子:       比較運算子,主要用於比較變數或者表示式的大小,C++語言中,一共有6個比較運算子:      1、大於>            2、

資訊學奧賽系列教程常用的數學函式

C++語言中常用的數學函式: 1、求絕對值 abs()         2、求平方根sqrt()         3、求指數pow()         4、向下

資訊學奧賽系列教程插入排序

插入排序:       有一個已經有序的資料序列,要求在這個已經排好的資料序列中插入一個數,但要求插入後此資料序列仍然有序。插入排序類似於打撲克時摸排的情形,每次將摸到的牌按花色和大小插入適當的位置,如下圖所示: 插入排序基本思想:  每

資訊學奧賽系列教程氣泡排序

排序: 按照從小到大,或者從大到小的順序,將雜亂無章的資料進行整理的過程,叫排序,排序一般在一維陣列中進行。 生活中排序的例子:上體育課的時候,老師把一排同學按身高進行排序。       考試後,老師按分數從高到低對同學的成績排名次。 氣泡排序原理和實現

資訊學奧賽系列教程算數運算子練習

程式閱讀題 2014年普及組初賽第一題 /* 輸入:2 3 4 輸出:____________ */ #include <iostream> using namespace std; int main() { int a, b, c, d, ans; cin >&g

資訊學奧賽系列教程高精度除法

我們平時做除法時,採用立豎式的方法計算: 被除數從高位開始,和被除數對齊,諸位“試商”,“試商”後被除數減去“試商”的數的乘積,如下圖所示: 採用計算機做高精度除法時,模擬日常除法的步驟。但計算機不可能做“試商”,這時,我們可以採用減法來模擬 "試商"的過程。演算法的步驟如下: