Python之web開發——Django入門

Django背景

Django誕生於新聞網站的環境中,它所提供的特性非常適合開發內容類的網站(例如:博客,交流社區,圖片分享站等等…)。因爲Django是在快節奏的新聞編輯環境中開發的,它的設計目的是使常見的Web開發任務變得快速而簡單。

Django是開源的,不是商業項目或者科研項目,它集中力量解決Web開發中所遇到的一系列問題。因此,Django每天都在現有的基礎上進步,以適應不斷更迭的開發需求。這樣即節省了開發時間,也提高了後期維護的效率。像Instagram、Pinterest這些都是使用Django開發的網站。

系統支持

Mac windows Linux
推薦使用Linux操作系統進行開發,Windows中有部分庫無法支持

Ubuntu常用命令

點擊這裏進入常用命令頁面

設計模型

Django無需數據庫就可以使用,通過對象關係映射器(Object-relational mapping),僅使用Python代碼就可以描述數據結構。

#models.py 
from django.db import models
class book(models.Model):
    name = models.CharField(max_length=100)
    pub_date = models.DateField()
    #在這裏創建了一個book模型,並定義了name和pub_date屬性

models.py 文件主要用一個 Python 類來描述數據表。 稱爲 模型(model) 。 運用這個類,可以通過簡單的 Python 代碼來創建、檢索、更新、刪除 數據庫中的記錄而無需寫一條又一條的SQL語句。

設計視圖

在模型被定義之後,便可以在視圖中引用模型。通常,視圖根據參數檢索數據,加載一個模板,並使用檢索到的數據呈現模板。

# views.py
from django.shortcuts import render
from .models import Person

def book_archive(request, year):
    book_list = Person.objects.filter(birth_year = year)
    context = {'year': year, 'book_list': book_list}
    return render(request, 'books/year_archive.html', context)

views.py文件包含了頁面的業務邏輯。book_archive()函數叫做視圖。 這裏還用到了year_archive.html模板。

設計鏈接

優雅簡潔的URL解析式是衡量高品質網站的重要標準。Django鼓勵使用漂亮的URL設計。 使用這些優美的URL,只需要建立URL和Python回調函數簡單的映射關係。

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('books/<int:year>', views.year_archive),
]

urls.py 指出了什麼樣的 URL 調用什麼視圖。 在這裏books/xxxxx將會調用 year_archive()這個函數。在進入這個鏈接時,會返回視圖函數的結果。

設計模板

Django擁有強大的模板功能,使用該模板能設計出強大的Web頁面。

# /template/year_archive.html
{% block title %}Books for {{ year }}{% endblock %}

{{% block content %}}
<h1>Articles for {{years}}</h1>

{% for book in book_list %}
    <p>{{ book.name }}</p>
    <p>Published {{ book.pub_date|date:"F j, Y" }}</P>
{% endfor %}
{% end block %}

year_archive.html 是 html 模板。 使用帶基本邏輯聲明的模板語言,如{% for book in book_list %},它試圖將函數返回的結果顯示在網頁上。

Django的這種結構爲MTV模式:M代表模型(Model),T代表模板(Template),V代表視圖(View)。這三個分別代表了三種不同功能的Web應用,各司其職,又彼此合作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章