簡要介紹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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...