Python中的ORM框架Django ORM實戰

WBOY
發布: 2023-06-10 13:00:23
原創
1501 人瀏覽過

隨著網路的發展,開發軟體變得越來越受歡迎。為了提高開發效率和程式碼管理,許多語言都提供了ORM框架,Python也不例外。 Django是一個Python Web框架,它提供了強大的ORM框架-Django ORM。本文將介紹如何使用Django ORM來管理資料庫。

  1. 安裝Django

在使用Django ORM之前,需要先安裝Django。可以使用pip來安裝它,指令如下:

pip install django
登入後複製
  1. 新Django項目

安裝完Django之後,可以使用它來建立一個新項目,指令如下:

django-admin startproject project_name
登入後複製

這將會建立一個名為project_name的Django專案。

  1. 建立資料庫模型

在Django ORM中,可以將資料庫模型定義為一個Python類別。在專案的app目錄下,建立一個名為models.py的文件,在其中定義模型。例如,建立一個名為Book的模型,具有title、author、pub_date和price屬性,則可以定義如下:

from django.db import models
   
class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=200)
    pub_date = models.DateField()
    price = models.DecimalField(max_digits=5, decimal_places=2)
登入後複製

在這裡,Book繼承了Django ORM中的Model類,並定義了四個屬性。 CharField代表字元型,DateField代表日期型,DecimalField代表十進位數型。在定義每個屬性時,可以使用參數來控制它們的類型、長度、精確度等。

此外,也可以為模型定義方法和類別方法。例如,在Book模型中定義一個名為get_books的類別方法,用於從資料庫中取得所有的書籍,則可以如下:

class Book(models.Model):
    # 类属性
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=200)
    pub_date = models.DateField()
    price = models.DecimalField(max_digits=5, decimal_places=2)

    # 类方法
    @classmethod
    def get_books(cls):
        return cls.objects.all()
登入後複製

在這裡,使用classmethod修飾符修飾了get_books方法,將其定義為類別方法。此方法使用Django ORM中的objects屬性來取得所有的Book物件。

  1. 執行資料庫遷移

在定義了模型後,需要在資料庫中建立表格。可以使用Django ORM提供的makemigrations和migrate指令來完成這個過程。使用makemigrations指令會產生一個遷移文件,其中包含了對模型的變更。使用migrate指令會執行遷移文件,將改動應用到資料庫中。指令如下:

python manage.py makemigrations
python manage.py migrate
登入後複製
  1. 使用Django ORM管理資料庫

#在定義了資料庫模型並且完成了資料庫遷移後,就可以使用Django ORM來管理資料庫了。例如,在views.py中可以編寫以下程式碼:

from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.get_books()
    return render(request, 'book_list.html', {'books': books})
登入後複製

在這裡,從models.py中匯入Book模型,並使用get_books方法取得所有的書籍。然後將它們作為參數傳遞到render函數中,該函數將使用模板檔案book_list.html來渲染頁面。

在book_list.html中,可以使用以下程式碼來展示書籍清單:

{% for book in books %}
    <div class="book">
        <h2>{{ book.title }}</h2>
        <p>{{ book.author }} - {{ book.pub_date|date:"Y年m月d日" }}</p>
        <p>价格:{{ book.price }}</p>
    </div>
{% endfor %}
登入後複製

在這裡,使用for迴圈來遍歷所有的書籍,並輸出它們的屬性。需要注意的是,在輸出pub_date屬性時,使用了date過濾器來將日期格式化為年月日的形式。

  1. 總結

Django ORM是一個強大的ORM框架,可以幫助開發者輕鬆管理資料庫。本文介紹了使用Django ORM來建立模型、執行資料庫遷移和管理資料庫的過程。希望這篇文章能幫助初學者更能理解Django ORM的應用。

以上是Python中的ORM框架Django ORM實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!