Django是一個開放原始碼的Python Web框架,具有高度可擴展性和靈活性。它採用「模型-視圖-控制器」(Model-View-Controller,MVC)的設計模式,使Web應用程式的開發變得快速且有效率。本文將提供Django的基礎知識、導入和安裝Django、創建資料庫、模型構建和視圖創建等方面的詳細介紹,以幫助初學者掌握Django。
一、Django的基礎
Django的主要元件包括:URL調度器、模板引擎、視圖以及資料庫存取層等。 Django支援多個資料庫,並使用ORM(物件關聯映射)工具提供物件表示和存取資料庫。它同時支援多種Web伺服器,如Apache、Nginx等。 Django還提供了豐富的功能和組件,如管理後台、表單處理、國際化、安全性和認證等。
二、匯入和安裝Django
在安裝Django之前,需要確認Python已經安裝成功。有兩種方法可以安裝Django:一個是使用pip指令(建議),另一個是手動下載和安裝。這裡我們介紹pip安裝的方法。
pip install virtualenv
接下來,使用下列指令建立一個新的虛擬環境。
virtualenv djangoenv
在這個範例中,虛擬環境的名稱為djangoenv。
pip install Django
這個指令會自動下載最新的版本,並將其安裝在虛擬環境的site-packages目錄中。
三、建立資料庫
Django支援多個資料庫系統,如MySQL、PostgreSQL等。在本文中,我們將使用預設的SQLite資料庫。安裝Python後就已經安裝好了SQLite。
django-admin startproject mysite
在這個範例中,專案的名稱為mysite。
cd mysite python manage.py startapp blog
這個指令會在專案的根目錄下建立一個名為blog的目錄。
注意:必須在專案的根目錄下執行這個指令。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
這個設定將資料庫類型設為SQLite,並將資料庫檔案命名為db.sqlite3。 DATABASES設定也支援其他關係型資料庫,如MySQL和PostgreSQL。
python manage.py makemigrations python manage.py migrate
這個命令將創建一個資料庫文件,並建立必要的表以管理Django使用的所有應用程式的資料庫模型。
四、模型建構
模型是將資料對應到資料庫的關鍵部分。為了使用模型,我們需要定義一個Python類,該類別將用於在資料庫中定義表。 Django的ORM支援許多不同的資料庫類型,為了方便起見,我們將在本文中使用SQLite資料庫。
from django.db import models class Blog(models.Model): title = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') body = models.TextField() def __str__(self): return self.title
python manage.py makemigrations blog python manage.py migrate
這個指令將會在資料庫中建立一個新的表,該表將包含我們已定義的資料模型。
五、視圖建立
視圖是使用者與應用程式互動的部分。視圖是一組函數,它們從模型中獲取數據,並將結果渲染到使用者的瀏覽器中。在Django中,所有的視圖都必須傳回一個HTTP回應物件。 Django也提供了一些常用的視圖類型。
from django.shortcuts import render from django.http import HttpResponse from .models import Blog def index(request): latest_blog_list = Blog.objects.order_by('-pub_date')[:5] context = {'latest_blog_list': latest_blog_list} return render(request, 'blog/index.html', context) def detail(request, blog_id): blog = Blog.objects.get(pk=blog_id) return render(request, 'blog/detail.html', {'blog': blog})
這裡定義了兩個檢視:index和detail。 index視圖將會取得最新的5篇部落格文章,並逐一渲染到HTML範本中。 detail視圖將獲取一篇部落格文章的詳細信息,並將其渲染到HTML模板中。
index.html
{% if latest_blog_list %} <ul> {% for blog in latest_blog_list %} <li><a href="{% url 'blog:detail' blog.id %}">{{ blog.title }}</a></li> {% endfor %} </ul> {% else %} <p>No blogs are available.</p> {% endif %}
detail.html
<h1>{{ blog.title }}</h1> <p>{{ blog.body }}</p> <p>Published on {{ blog.pub_date }}</p>
from django.urls import path from . import views app_name = 'blog' urlpatterns = [ path('', views.index, name='index'), path('<int:blog_id>/', views.detail, name='detail'), ]
在这个文件中,我们使用URL配置了两个视图函数:index和detail。路径“
六、启动服务器
现在我们已经定义了我们的Django应用程序,我们可以启动服务器并测试它是否正常工作了。在命令行中输入以下命令。
python manage.py runserver
如果一切正常,您将看到以下输出。
Performing system checks... System check identified no issues (0 silenced). September 18, 2021 - 18:13:35 Django version 3.2, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
现在您可以打开浏览器,并输入地址http://127.0.0.1:8000/blog/来访问您的Django网站。
七、总结
本文提供了一个Django入门指南,介绍了Django的基础知识,导入和安装Django,创建数据库,模型构建和视图创建等方面的内容。希望本文能够帮助初学者更好地理解Django,并在他们的Web开发项目中使用它。在Web开发的繁荣时代,Django无疑是一个强大的工具。
以上是Django入門指南:一個過程式的Python Web框架教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!