簡要介紹django框架

来源:https://www.cnblogs.com/NutBlog/archive/2023/05/20/17418012.html
-Advertisement-
Play Games

Django是一個高級的Python Web框架,它鼓勵快速開發和乾凈、實用的設計。 Django遵循MVC(模型-視圖-控制器)設計模式,使得開發者能夠更輕鬆地組織代碼和實現功能。以下是Django框架的一些主要組件: 1.**模型(Model)** :模型是數據的抽象表示,用於定義數據結構。在D ...


Django是一個高級的Python Web框架,它鼓勵快速開發和乾凈、實用的設計。

Django遵循MVC(模型-視圖-控制器)設計模式,使得開發者能夠更輕鬆地組織代碼和實現功能。以下是Django框架的一些主要組件:

1.模型(Model) :模型是數據的抽象表示,用於定義數據結構。在Django中,模型通常與資料庫表相對應。
例如,在前一篇的博客示例 中,Post模型表示了一篇博客文章,包含標題、內容和發佈日期等欄位。

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Post模型是在blog應用的models.py文件中定義的。它包含了title、content和pub_date三個欄位,分別表示文章的標題、內容和發佈日期。其中,title和content欄位分別使用了CharField和TextField類型,pub_date欄位使用了DateTimeField類型,並且設置了auto_now_add=True參數,表示在創建新的Post對象時自動設置為當前時間。
此外,Post模型還定義了一個_str__方法,用於在控制臺中顯示Post對象的標題。

2.視圖(View) :視圖是處理用戶請求的邏輯。在Django中,視圖接收一個HttpRequest對象,處理請求,然後返回一個HttpResponse對象。
例如,在博客示例中,index視圖獲取所有的博客文章並將它們傳遞給模板。

def index(request):
    posts = Post.objects.all()
    return render(request, 'blog/index.html', {'posts': posts})

index視圖是在blog應用的views.py文件中定義的。它使用Post.objects.all()獲取所有的Post對象,並將它們傳遞給blog/index.html模板。

3.模板(Template) :模板是用於生成HTML的文本文件,它可以包含變數、標簽和過濾器等。在Django中,模板用於定義網頁的結構和樣式。
例如,在博客示例中,index.html模板顯示了所有博客文章的標題、內容和發佈日期。

{% for post in posts %}
    <h2>{{ post.title }}</h2>
    <p>{{ post.content }}</p>
    <p>{{ post.pub_date }}</p>
{% endfor %}

在模板中,使用{% for post in posts %}迴圈遍歷所有的Post對象,並使用{{ post.title }}、{{ post.content }}和{{ post.pub_date }}分別顯示文章的標題、內容和發佈日期。
在模板中,{% for post in posts %}表示對posts變數進行迴圈遍歷,{% endfor %}表示迴圈結束。在迴圈體中,使用{{ post.title }}、{{ post.content }}和{{ post.pub_date }}分別顯示文章的標題、內容和發佈日期。其中,{{ post.title }}、{{ post.content }}和{{ post.pub_date }}是模板變數,它們會被替換為對應的Post對象的屬性值。

4.URL配置(URL Configuration) :URL配置是將URL與視圖函數關聯起來的方式。在Django中,URL配置使用正則表達式或路徑模式來匹配請求的URL。
例如,在博客示例中,blog/ URL與index視圖關聯。

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

在上面的代碼中,URL配置是在blog應用的urls.py文件中定義的。它使用path函數將'' URL與index視圖關聯。在myblog項目的urls.py文件中,使用path函數將'blog/' URL與blog應用的URL配置關聯。

在Django中,URL配置用於將URL與視圖函數關聯起來。path函數接收兩個參數:第一個參數是URL模式,可以是一個字元串或正則表達式;第二個參數是視圖函數,用於處理與該URL模式匹配的請求。例如,在上面的代碼中,'' URL模式表示根URL,與index視圖關聯。當用戶訪問根URL時,Django將調用index視圖來處理請求。

5.管理界面(Admin Interface) :Django自帶一個強大的管理界面,可以用於管理網站的數據。開發者可以通過管理界面輕鬆地添加、修改和刪除數據。

要使用管理界面,需要在myblog項目的urls.py文件中添加以下代碼:

from django.contrib import admin

urlpatterns = [
    path('admin/', admin.site.urls),
]

然後,在命令行中輸入以下命令創建一個超級用戶:

python manage.py createsuperuser

按照提示輸入用戶名、電子郵件和密碼,即可創建一個超級用戶。創建完成後,可以在瀏覽器中訪問http://127.0.0.1:8000/admin/,輸入超級用戶的用戶名和密碼,即可進入管理界面。

在管理界面中,可以管理所有的模型對象,包括添加、修改和刪除。例如,在上面的博客示例中,可以在管理界面中添加、修改和刪除博客文章。

6.其他功能 :Django還提供了許多其他功能,如表單處理、用戶認證、緩存、信號等,以幫助開發者更輕鬆地構建複雜的Web應用。

總之,Django是一個功能豐富、易於使用的Web框架,適用於各種類型的Web項目。通過遵循MVC設計模式,Django使得開發者能夠更高效地組織代碼和實現功能

註:如果你想瞭解更多關於Django管理界面的詳細教程,可以參考Django官方文檔


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 用go設計開發一個自己的輕量級登錄庫/框架吧(拓展篇),給自己的庫/框架拓展一下吧,主庫:https://github.com/weloe/token-go ...
  • ### 1.0 匿名對象的基本知識 * 匿名對象 顧名思義,匿名對象指的就是沒有名字的對象,在使用中理解為實例化一個類對象,但是並不把它賦給一個對應的類變數,而是直接使用。在理解匿名對象前,我們先創建一個類便於後面的使用。 * 匿名對象具有以下特征: 語法上:只創建對象,但不用變數來接收,例如:假設 ...
  • Groovy是一種基於Java平臺的動態編程語言,它結合了Python、Ruby和Smalltalk等語言的特性,同時與Java無縫集成。 ...
  • 從 JDK7 開始,引入了表示非同步通道的 `AsynchronousSockerChannel` 類和 `AsynchronousServerSocketChannel` 類,這兩個類的作用與 `SocketChannel` 類和 `ServerSockelChannel` 相似,區別在於非同步通道的 ...
  • ## 文章首發 [【重學C++】02 脫離指針陷阱:深入淺出 C++ 智能指針](https://mp.weixin.qq.com/s/McD-kfsiQ7hW1UnsAriC1g) ## 前言 大家好,今天是【重學C++】系列的第二講,我們來聊聊C++的智能指針。 ## 為什麼需要智能指針 在上一 ...
  • CAS 是樂觀鎖設計思想的實現。CAS 的思想是:在“讀取 - 修改 - 寫回”操作序列中,先讀取並修改數據,寫回數據前先判斷讀取數據後的這段時間內數據是否發生變化(共用變數的當前值是否是我們的期望值)。通過 CAS 我們可以以無鎖的方式,保證對共用數據進行 “讀取 - 修改 - 寫回” 操作序列的... ...
  • 深入探討Python中的併發編程,特別關註多線程和多進程的應用。我們將先從基本概念開始,然後通過詳細舉例探討每一種機制,最後分享一些實戰經驗以及一種優雅的編程技巧。 ...
  • [toc] # 一、背景介紹 滇西小哥是一位來自中國雲南省的視頻博主,他在YouTube上擁有超過1000萬的訂閱者和上億的觀看量。他的視頻內容主要涵蓋中國文化、美食、旅行、音樂和藝術等方面。滇西小哥通過分享自己的文化體驗和獨特的觀點,成功地將中國文化傳遞到了國際社會並獲得了廣泛的關註。通過他的視頻 ...
一周排行
    -Advertisement-
    Play Games
  • 通過WPF的按鈕、文本輸入框實現了一個簡單的SpinBox數字輸入用戶組件並可以通過數據綁定數值和步長。本文中介紹了通過Xaml代碼實現自定義組件的佈局,依賴屬性的定義和使用等知識點。 ...
  • 以前,我看到一個朋友在對一個系統做初始化的時候,通過一組魔幻般的按鍵,調出來一個隱藏的系統設置界面,這個界面在常規的菜單或者工具欄是看不到的,因為它是一個後臺設置的關鍵界面,不公開,同時避免常規用戶的誤操作,它是作為一個超級管理員的入口功能,這個是很不錯的思路。其實Winform做這樣的處理也是很容... ...
  • 一:背景 1. 講故事 前些天有位朋友找到我,說他的程式每次關閉時就會自動崩潰,一直找不到原因讓我幫忙看一下怎麼回事,這位朋友應該是第二次找我了,分析了下 dump 還是挺經典的,拿出來給大家分享一下吧。 二:WinDbg 分析 1. 為什麼會崩潰 找崩潰原因比較簡單,用 !analyze -v 命 ...
  • 在一些報表模塊中,需要我們根據用戶操作的名稱,來動態根據人員姓名,更新報表的簽名圖片,也就是電子手寫簽名效果,本篇隨筆介紹一下使用FastReport報表動態更新人員簽名圖片。 ...
  • 最新內容優先發佈於個人博客:小虎技術分享站,隨後逐步搬運到博客園。 創作不易,如果覺得有用請在Github上為博主點亮一顆小星星吧! 博主開始學習編程於11年前,年少時還只會使用cin 和cout ,給單片機點點燈。那時候,類似async/await 和future/promise 模型的認知還不是 ...
  • 之前在阿裡雲ECS 99元/年的活動實例上搭建了一個測試用的MINIO服務,以前都是直接當基礎設施來使用的,這次準備自己學一下S3相容API相關的對象存儲開發,因此有了這個小工具。目前僅包含上傳功能,後續計劃開發一個類似圖床的對象存儲應用。 ...
  • 目錄簡介快速入門安裝 NuGet 包實體類User資料庫類DbFactory增刪改查InsertSelectUpdateDelete總結 簡介 NPoco 是 PetaPoco 的一個分支,具有一些額外的功能,截至現在 github 星數 839。NPoco 中文資料沒多少,我是被博客園群友推薦的, ...
  • 前言 前面使用 Admin.Core 的代碼生成器生成了通用代碼生成器的基礎模塊 分組,模板,項目,項目模型,項目欄位的基礎功能,本篇繼續完善,實現最核心的模板生成功能,並提供生成預覽及代碼文件壓縮下載 準備 首先清楚幾個模塊的關係,如何使用,簡單畫一個流程圖 前面完成了基礎的模板組,模板管理,項目 ...
  • 假設需要實現一個圖標和文本結合的按鈕 ,普通做法是 直接重寫該按鈕的模板; 如果想作為通用的呢? 兩種做法: 附加屬性 自定義控制項 推薦使用附加屬性的形式 第一種:附加屬性 創建Button的附加屬性 ButtonExtensions 1 public static class ButtonExte ...
  • 在C#中,委托是一種引用類型的數據類型,允許我們封裝方法的引用。通過使用委托,我們可以將方法作為參數傳遞給其他方法,或者將多個方法組合在一起,從而實現更靈活的編程模式。委托類似於函數指針,但提供了類型安全和垃圾回收等現代語言特性。 基本概念 定義委托 定義委托需要指定它所代表的方法的原型,包括返回類 ...