首頁  >  文章  >  後端開發  >  使用Python和Django建立Web應用程式:一個實用的指南

使用Python和Django建立Web應用程式:一個實用的指南

王林
王林原創
2023-06-22 17:51:301329瀏覽

Python是一種流行的程式語言,具有簡單易學、可讀性高和廣泛應用等優點,Python被廣泛應用於Web開發、資料科學、機器學習等領域。其中,Django是高階Web框架,基於Python語言開發,是Web應用程式開發的重要工具。

Django的特點是易於學習、易於維護、遵循MVC模式、自帶ORM等優點,因此受到開發者們的歡迎。本文將介紹使用Python和Django建立Web應用程式的實用指南。

  1. 安裝Python和Django

首先,我們需要安裝Python和Django。可以從Python官方網站(www.python.org)下載最新的Python安裝包,安裝後,可以在命令列中輸入python,檢查Python是否正確安裝。

安裝Django可以透過pip套件管理器進行安裝,打開命令列窗口,輸入以下命令:

pip install django

安裝完成後,可以透過以下命令檢查Django是否正確安裝:

django-admin --version

如果傳回Django版本號,則表示安裝成功。

  1. 建立Django專案

在命令列中進入要儲存Django專案的目錄,然後輸入以下指令:

django-admin startproject myproject

這個指令將會建立一個名為「myproject」的Django項目,專案目錄結構如下:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        wsgi.py

其中,manage.py是腳本文件,用於在命令列中執行Django任務;settings.py包含項目的設定;urls. py包含專案的URL模式;wsgi.py指定Web伺服器將請求轉送到哪個Python應用程式。

  1. 建立Django應用程式

在Django專案中,應用程式是指將Web應用程式與特定業務邏輯結合的元件。我們可以使用以下命令在已創建的Django專案中創建應用程式:

python manage.py startapp myapp

這個命令將在Django專案中的“myproject”目錄中創建一個名為“myapp”的應用程序,應用程式目錄結構如下:

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

其中,models.py包含應用程式的資料庫模型定義;views.py包含請求處理函數;admin.py用於管理後台;tests.py包含應用程式的測試程式碼。

  1. 寫Django模型

Django的ORM是一個將Python類別對應到資料庫表的工具,我們可以透過編輯models.py檔案來定義應用程式的模型。

例如,我們建立一個名為「Book」(書籍)的模型,它包含以下屬性:

  • title(書名):字串類型,最大長度為200字元
  • author(作者):字串類型,最大長度為50個字元
  • pub_date(出版日期):日期類型
  • price(價格):十進位類型,最大值為9999.99,小數位為2位元

程式碼如下:

from django.db import models


class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=50)
    pub_date = models.DateField()
    price = models.DecimalField(max_digits=5, decimal_places=2, max_value=9999.99)
  1. 建立資料庫表

在Django中,資料庫表是透過模型自動建立的。我們可以使用以下命令將模型創建到資料庫中:

python manage.py makemigrations myapp

這個命令將創建一個資料庫遷移文件,描述如何將模型映射到資料庫表中。我們可以使用以下指令將遷移套用至資料庫:

python manage.py migrate

這個指令會依照遷移檔案中的指令,將表格建立到資料庫中。

  1. 編寫檢視

在Django中,檢視是請求處理函數,負責處理使用者發起的請求,並產生回應內容。在編寫視圖之前,我們需要設定URL模式,將請求與視圖關聯起來。我們可以編輯urls.py文件,加入以下程式碼:

from django.urls import path
from . import views

urlpatterns = [
    path('books/', views.book_list, name='book_list'),
    path('books/new', views.book_new, name='book_new'),
    path('books/<int:pk>/edit/', views.book_edit, name='book_edit'),
    path('books/<int:pk>/delete/', views.book_delete, name='book_delete'),
]

這個程式碼片段定義了4個URL模式,分別與4個視圖關聯起來。其中,path函數的第一個參數指定URL,第二個參數指定視圖函數,第三個參數是模板引擎將視圖渲染成HTML時的名稱。

在views.py檔案中,我們可以定義請求處理函數,例如:

from django.shortcuts import render, get_object_or_404
from .models import Book
from .forms import BookForm

def book_list(request):
    books = Book.objects.all()
    return render(request, 'book_list.html', {'books': books})

def book_new(request):
    if request.method == "POST":
        form = BookForm(request.POST)
        if form.is_valid():
            book = form.save(commit=False)
            book.save()
            return redirect('book_list')
    else:
        form = BookForm()
    return render(request, 'book_edit.html', {'form': form})

def book_edit(request, pk):
    book = get_object_or_404(Book, pk=pk)
    if request.method == "POST":
        form = BookForm(request.POST, instance=book)
        if form.is_valid():
            book = form.save(commit=False)
            book.save()
            return redirect('book_list')
    else:
        form = BookForm(instance=book)
    return render(request, 'book_edit.html', {'form': form})

def book_delete(request, pk):
    book = get_object_or_404(Book, pk=pk)
    book.delete()
    return redirect('book_list')

#其中,book_list函數用於傳回所有圖書清單;book_new函數用於建立新的圖書;book_edit函數用於編輯已有的圖書;book_delete函數用於刪除圖書。

  1. 編寫HTML模板

在Django中,我們可以使用模板引擎來將視圖函數渲染成HTML頁面,從而為使用者呈現可視化的Web介面。我們可以在templates目錄下,建立一個HTML模板文件,例如book_list.html。

程式碼如下:

{% extends 'base.html' %}

{% block content %}
  <h1>Books</h1>
  <a href="{% url 'book_new' %}">New book</a>
  <table>
    <thead>
      <tr>
        <th>Title</th>
        <th>Author</th>
        <th>Pub date</th>
        <th>Price</th>
        <th>Actions</th>
      </tr>
    </thead>
    <tbody>
      {% for book in books %}
        <tr>
          <td>{{ book.title }}</td>
          <td>{{ book.author }}</td>
          <td>{{ book.pub_date }}</td>
          <td>{{ book.price }}</td>
          <td>
            <a href="{% url 'book_edit' book.id %}">Edit</a>
            <a href="{% url 'book_delete' book.id %}">Delete</a>
          </td>
        </tr>
      {% endfor %}
    </tbody>
  </table>
{% endblock %}

其中,{% extends 'base.html' %}指定此範本繼承自base.html範本;{% block content %}至{% endblock %}指定這個模板中的主要內容是包含在其中的內容。

我們執行Django伺服器,並在瀏覽器中開啟localhost:8000/books/,即可查看所有書籍清單。

透過這個簡單的範例,我們了解到如何使用Python和Django建立Web應用程序,並涉及了基本的操作,包括安裝Python和Django,創建Django專案和應用程序,編寫Django模型、視圖和模板。希望這個指南可以幫助您建立自己的Web應用程式。

以上是使用Python和Django建立Web應用程式:一個實用的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn