Django 是一個非常流行的 Python Web 開發框架,它是完整且強大的,適用于構建大型 Web 應用,在這一章節中,我們將詳細介紹 Django 的基本概念、組件和用法,為了便于理解,我們將使用實體來展示如何使用 Django 構建一個簡單的 Web 應用,
9.3.1 安裝和創建 Django 專案
首先,使用 pip 安裝 Django:
pip install django
接下來,使用 django-admin 命令創建一個新的 Django 專案:
django-admin startproject myproject
這將創建一個名為 myproject 的目錄,其中包含 Django 專案的初始檔案和目錄,進入 myproject 目錄:
cd myproject
9.3.2 Django 專案結構
Django 專案由一個或多個應用組成,每個應用代表一個特定的功能,例如博客、論壇、商店等,為了展示如何創建和使用 Django 應用,我們將創建一個簡單的博客應用,
首先,使用 startapp 命令創建一個名為 blog 的應用:
python manage.py startapp blog
這將創建一個名為 blog 的目錄,其中包含應用的初始檔案和目錄,以下是一個簡要的目錄結構說明:
myproject/:專案根目錄,manage.py:一個用于管理專案的命令列工具,myproject/:專案的配置目錄,__init__.py:一個空的 Python 檔案,用于將目錄標記為 Python 包,asgi.py:ASGI 入口檔案,用于部署專案,settings.py:專案的組態檔,urls.py:專案的 URL 組態檔,wsgi.py:WSGI 入口檔案,用于部署專案,
blog/:應用目錄,__init__.py:同上,admin.py:應用的 Django Admin 組態檔,apps.py:應用的組態檔,migrations/:應用的資料庫遷移目錄,models.py:應用的資料模型檔案,tests.py:應用的測驗檔案,views.py:應用的視圖檔案,
9.3.3 資料模型
在 Django 中,資料模型用于定義應用的資料結構,為了創建一個簡單的博客資料模型,編輯 blog/models.py,添加以下代碼:
from django.db import models
from django.utils import timezone
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
我們定義了一個名為 Post 的資料模型,它具有 title、content 和 pub_date 三個欄位,__str__ 方法用于在 Django Admin 界面中顯示模型的友好名稱,
接下來,將新創建的應用添加到專案的 settings.py 檔案中的 INSTALLED_APPS 串列中:
INSTALLED_APPS = [
# ...
'blog',
]
然后,使用 makemigrations 和 migrate 命令創建并應用資料庫遷移:
python manage.py makemigrations
python manage.py migrate
這將創建一個名為 db.sqlite3 的 SQLite 資料庫檔案,其中包含應用的資料表,
9.3.4 Django Admin
Django 提供了一個強大的后臺管理界面,用于管理資料模型,首先,創建一個管理員用戶:
python manage.py createsuperuser
接下來,注冊 Post 模型以在 Django Admin 中使用,編輯 blog/admin.py,添加以下代碼:
from django.contribimport admin
from .models import Post
admin.site.register(Post)
現在,啟動開發服務器:
python manage.py runserver
在瀏覽器中訪問 http://127.0.0.1:8000/admin/,使用先前創建的管理員用戶登錄,你可以在 Django Admin 中管理 Post 資料模型,
9.3.5 視圖和模板
視圖用于處理 Web 請求并回傳回應,為了創建一個顯示博客文章串列的視圖,編輯 blog/views.py,添加以下代碼:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.order_by('-pub_date')
return render(request, 'blog/post_list.html', {'posts': posts})
我們定義了一個名為 post_list 的視圖,它從資料庫中獲取所有的 Post 物件并按發布日期降序排列,視圖使用 render 函式將 posts 變數傳遞給一個名為 blog/post_list.html 的模板,
接下來,創建模板檔案,在 blog 目錄下創建一個名為 templates 的目錄,并在其中創建一個名為 blog 的子目錄,然后,在 blog/templates/blog 目錄下創建一個名為 post_list.html 的檔案,添加以下代碼:
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.pub_date }}</p>
<p>{{ post.content }}</p>
{% endfor %}
此模板使用 Django 的模板語言在頁面上顯示每篇博客文章的標題、發布日期和內容,
9.3.6 URL 配置
最后,我們需要配置 URL 以將請求映射到視圖,首先,在 blog 目錄下創建一個名為 urls.py 的檔案,添加以下代碼:
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
這將專案的根 URL(/)映射到 post_list 視圖,接下來,將新創建的應用的 URL 配置包含到專案的 urls.py 檔案中:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
這告訴 Django 在處理 URL 時要包含 blog 應用的 URL 配置,
現在,重新啟動開發服務器:
python manage.py runserver
在瀏覽器中訪問 http://127.0.0.1:8000/,你應該能看到博客文章串列,
這僅僅是 Django 框架的簡要介紹,它還有許多其他功能和組件,例如表單、用戶認證、快取等,要了解更多關于 Django 的資訊,請訪問其官方檔案:https://docs.djangoproject.com/
推薦閱讀:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554765.html
標籤:其他
上一篇:RTOS測驗(韓國方案)
下一篇:返回列表
