企業(yè)網(wǎng)站banner尺寸小紅書外鏈管家
目錄
1.Django簡(jiǎn)介
1.1 Django 的核心特點(diǎn)
1.2 Django 的核心組件
1.3 Django 的應(yīng)用場(chǎng)景
1.4 總結(jié)
2.基礎(chǔ)環(huán)境建立
2.1?創(chuàng)建虛擬環(huán)境
2.1.1 使用 virtualenv 創(chuàng)建虛擬環(huán)境
2.1.2 使用 venv 創(chuàng)建虛擬環(huán)境
2.2 激活虛擬環(huán)境
2.2.1 在 Windows 上
2.2.2 在 macOS 或 Linux 上
2.3?安裝 Django
2.4?創(chuàng)建 Django 項(xiàng)目
2.5?啟動(dòng)開(kāi)發(fā)服務(wù)器
2.6?停用虛擬環(huán)境
2.7?保存依賴
2.8 小結(jié)
1.Django簡(jiǎn)介
Django 是一個(gè)開(kāi)源的 Python Web 框架,它是為幫助開(kāi)發(fā)者快速構(gòu)建高效、可擴(kuò)展且安全的 Web 應(yīng)用而設(shè)計(jì)的。Django 強(qiáng)調(diào) "DRY"(Don't Repeat Yourself) 原則,盡量減少代碼重復(fù),并提供很多內(nèi)置功能,幫助開(kāi)發(fā)者快速實(shí)現(xiàn)復(fù)雜的 Web 應(yīng)用。
1.1 Django 的核心特點(diǎn)
(1)快速開(kāi)發(fā)
- Django 的設(shè)計(jì)目標(biāo)之一是讓開(kāi)發(fā)者能夠快速創(chuàng)建 Web 應(yīng)用。它提供了大量的內(nèi)置功能和工具,幫助開(kāi)發(fā)者避免從零開(kāi)始編寫常見(jiàn)的 Web 應(yīng)用組件。
- 例如,Django 提供了 自動(dòng)生成的后臺(tái)管理系統(tǒng)(Django Admin),開(kāi)發(fā)者只需要定義數(shù)據(jù)模型(Model)和簡(jiǎn)單配置,就可以獲得強(qiáng)大的數(shù)據(jù)管理界面。
(2)強(qiáng)大的 ORM(對(duì)象關(guān)系映射)
- Django 提供了一個(gè) ORM(Object-Relational Mapping)系統(tǒng),讓開(kāi)發(fā)者無(wú)需直接寫 SQL 查詢,便可以通過(guò) Python 對(duì)象進(jìn)行數(shù)據(jù)庫(kù)操作。
- 你只需要定義模型(Model)類,Django 會(huì)自動(dòng)為你創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,并且支持通過(guò) Python 代碼對(duì)數(shù)據(jù)進(jìn)行增刪改查(CRUD)操作。
(3)自動(dòng)化的管理后臺(tái)
- Django 自帶的管理后臺(tái)非常強(qiáng)大,開(kāi)發(fā)者只需要簡(jiǎn)單地注冊(cè)模型(Model)到管理后臺(tái),就可以自動(dòng)獲得一個(gè)功能完整的界面用于管理數(shù)據(jù)。
- 后臺(tái)支持?jǐn)?shù)據(jù)的增刪改查(CRUD),并提供了過(guò)濾、搜索等高級(jí)功能。
(4)安全性
- Django 提供了多種內(nèi)建的安全功能,幫助開(kāi)發(fā)者防止常見(jiàn)的 Web 安全問(wèn)題,如:
- CSRF(跨站請(qǐng)求偽造)防護(hù):Django 默認(rèn)啟用 CSRF 保護(hù),防止惡意網(wǎng)站偽造用戶請(qǐng)求。
- XSS(跨站腳本攻擊)防護(hù):Django 自動(dòng)轉(zhuǎn)義模板中的變量,避免 HTML 注入攻擊。
- SQL 注入防護(hù):通過(guò) ORM 進(jìn)行數(shù)據(jù)庫(kù)操作,Django 自動(dòng)防止 SQL 注入攻擊。
- 密碼管理:Django 使用加密的哈希算法來(lái)存儲(chǔ)密碼,確保用戶數(shù)據(jù)的安全。
(5)可擴(kuò)展性和靈活性
- Django 是 模塊化的,開(kāi)發(fā)者可以根據(jù)需要選擇合適的功能進(jìn)行擴(kuò)展。
- 例如,Django 提供了多個(gè)擴(kuò)展包來(lái)處理認(rèn)證、RESTful API、文件上傳、緩存等功能。
- 你也可以自己創(chuàng)建 應(yīng)用(App),并將它們集成到主項(xiàng)目中。
(6)良好的文檔和社區(qū)支持
- Django 有著 極其完善的官方文檔,它包含了從基礎(chǔ)入門到高級(jí)功能的全面指南,幫助開(kāi)發(fā)者快速學(xué)習(xí)和掌握 Django。
- Django 社區(qū)非?;钴S,你可以通過(guò)官方論壇、Stack Overflow 等途徑獲取支持,解決開(kāi)發(fā)中的問(wèn)題。
1.2 Django 的核心組件
(1)Model(模型)
- Django 提供了 ORM 系統(tǒng)來(lái)處理與數(shù)據(jù)庫(kù)的交互。模型定義了數(shù)據(jù)的結(jié)構(gòu),并通過(guò) Django 的 ORM 系統(tǒng)自動(dòng)與數(shù)據(jù)庫(kù)進(jìn)行交互。
- 示例:
from django.db import modelsclass Product(models.Model):name = models.CharField(max_length=100)price = models.DecimalField(max_digits=10, decimal_places=2)description = models.TextField()def __str__(self):return self.name
(2)View(視圖)
- 視圖是請(qǐng)求和響應(yīng)之間的核心處理單元。它負(fù)責(zé)接收 HTTP 請(qǐng)求,處理請(qǐng)求并返回響應(yīng)。
- 在 Django 中,視圖可以是函數(shù)視圖(FBV)或類視圖(CBV)。
- 示例(函數(shù)視圖):
from django.http import HttpResponsedef home(request):return HttpResponse("Welcome to the homepage!")
(3)Template(模板)
- Django 提供了模板系統(tǒng)來(lái)動(dòng)態(tài)渲染 HTML 頁(yè)面。模板系統(tǒng)允許開(kāi)發(fā)者插入動(dòng)態(tài)內(nèi)容(例如數(shù)據(jù)庫(kù)查詢結(jié)果)并控制頁(yè)面結(jié)構(gòu)。
- 示例(模板):
<h1>{{ title }}</h1> <p>Welcome to the site, {{ user.username }}</p>
(4)URL Dispatcher(URL 路由)
- Django 使用 URL 路由系統(tǒng)將 URL 映射到視圖函數(shù)或視圖類。路由系統(tǒng)可以匹配動(dòng)態(tài) URL,例如 URL 中帶有參數(shù)。
- 示例:
from django.urls import path from . import viewsurlpatterns = [path('', views.home, name='home'),path('product/<int:id>/', views.product_detail, name='product_detail'), ]
(5)Admin(管理后臺(tái))
- Django 提供了一個(gè)強(qiáng)大的自動(dòng)生成的管理后臺(tái),開(kāi)發(fā)者只需注冊(cè)模型,便可以獲得一個(gè)全面的數(shù)據(jù)管理界面。
- 示例(注冊(cè)模型):
from django.contrib import admin from .models import Productadmin.site.register(Product)
(6)Form(表單)
- Django 提供了一個(gè)表單框架,用于生成 HTML 表單、處理用戶提交的數(shù)據(jù)并驗(yàn)證數(shù)據(jù)。
- 示例:
from django import formsclass ProductForm(forms.Form):name = forms.CharField(max_length=100)price = forms.DecimalField(max_digits=10, decimal_places=2)description = forms.CharField(widget=forms.Textarea)
1.3 Django 的應(yīng)用場(chǎng)景
- 快速構(gòu)建 Web 應(yīng)用:Django 提供了許多內(nèi)建工具,可以讓開(kāi)發(fā)者快速搭建 Web 應(yīng)用,適合從小型博客到大型復(fù)雜應(yīng)用的開(kāi)發(fā)。
- 企業(yè)級(jí)應(yīng)用:Django 強(qiáng)調(diào)可擴(kuò)展性和安全性,適合處理復(fù)雜的企業(yè)級(jí)應(yīng)用,如電商平臺(tái)、社交網(wǎng)絡(luò)等。
- RESTful API:Django 可以與 Django REST Framework 配合使用,快速構(gòu)建 API 服務(wù),適合前后端分離的應(yīng)用。
1.4 總結(jié)
Django 是一個(gè)功能強(qiáng)大且易用的 Web 框架,旨在讓開(kāi)發(fā)者能夠快速構(gòu)建高質(zhì)量的 Web 應(yīng)用。通過(guò) Django,你可以避免重復(fù)造輪子,專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。Django 內(nèi)置了 ORM、表單處理、安全性保護(hù)、自動(dòng)化管理后臺(tái)等功能,極大地簡(jiǎn)化了 Web 開(kāi)發(fā)過(guò)程。
2.基礎(chǔ)環(huán)境建立
2.1?創(chuàng)建虛擬環(huán)境
在此之前,可以創(chuàng)建一個(gè)文件夾來(lái)存放,如創(chuàng)建一個(gè)Django文件夾來(lái)存放項(xiàng)目。
首先,確保你的 Python 環(huán)境中已經(jīng)安裝了 virtualenv
或者使用 Python 自帶的 venv
模塊來(lái)創(chuàng)建虛擬環(huán)境,我采用了第二種。
如果你還沒(méi)有安裝 virtualenv
,可以通過(guò)以下命令來(lái)安裝:
pip install virtualenv
但是,Python 3.3 及以上版本已經(jīng)自帶了 venv
模塊,因此你也可以直接使用 venv
來(lái)創(chuàng)建虛擬環(huán)境。
2.1.1 使用 virtualenv
創(chuàng)建虛擬環(huán)境
在你項(xiàng)目的根目錄下,執(zhí)行以下命令來(lái)創(chuàng)建一個(gè)虛擬環(huán)境(假設(shè)虛擬環(huán)境的名字是 venv
):
virtualenv venv
2.1.2 使用 venv
創(chuàng)建虛擬環(huán)境
如果你使用的是 Python 3 自帶的 venv
模塊,可以這樣創(chuàng)建虛擬環(huán)境:
python -m venv venv
這將創(chuàng)建一個(gè)名為 venv
的文件夾,其中包含虛擬環(huán)境的所有必要文件。
2.2 激活虛擬環(huán)境
2.2.1 在 Windows 上
在命令行中,運(yùn)行以下命令來(lái)激活虛擬環(huán)境:
venv\Scripts\activate
2.2.2 在 macOS 或 Linux 上
在終端中,運(yùn)行以下命令來(lái)激活虛擬環(huán)境:
source venv/bin/activate
激活虛擬環(huán)境后,你會(huì)看到命令行提示符前面會(huì)顯示 (venv)
,表示當(dāng)前虛擬環(huán)境已激活。
2.3?安裝 Django
虛擬環(huán)境激活后,安裝 Django:
pip install django
這樣,Django 會(huì)安裝在虛擬環(huán)境中,而不會(huì)影響系統(tǒng)級(jí)別的 Python 環(huán)境。
2.4?創(chuàng)建 Django 項(xiàng)目
虛擬環(huán)境激活后,繼續(xù)按照之前的步驟來(lái)創(chuàng)建 Django 項(xiàng)目和應(yīng)用。假設(shè)你要?jiǎng)?chuàng)建一個(gè)名為 myproject
的 Django 項(xiàng)目:
django-admin startproject myproject
cd myproject
2.5?啟動(dòng)開(kāi)發(fā)服務(wù)器
在項(xiàng)目目錄下,運(yùn)行以下命令啟動(dòng)開(kāi)發(fā)服務(wù)器:
python manage.py runserver
這時(shí),你的 Django 項(xiàng)目應(yīng)該在虛擬環(huán)境中成功運(yùn)行。
訪問(wèn)127.0.0.1:8000,可以看到如下信息,到這步已經(jīng)成功安裝,下面內(nèi)容便可以略過(guò):
2.6?停用虛擬環(huán)境
當(dāng)你完成工作并希望退出虛擬環(huán)境時(shí),可以運(yùn)行:
deactivate
這樣,虛擬環(huán)境就會(huì)被禁用,返回到系統(tǒng)默認(rèn)的 Python 環(huán)境。
2.7?保存依賴
為了方便其他人或者你自己在不同機(jī)器上安裝相同的依賴,你可以創(chuàng)建一個(gè) requirements.txt
文件,該文件包含所有項(xiàng)目依賴的庫(kù)。使用以下命令生成 requirements.txt
:
pip freeze > requirements.txt
然后,其他人在設(shè)置項(xiàng)目時(shí),只需運(yùn)行以下命令來(lái)安裝所有依賴:
pip install -r requirements.txt
2.8 小結(jié)
- 使用
virtualenv
或venv
創(chuàng)建虛擬環(huán)境。 - 激活虛擬環(huán)境并安裝 Django。
- 在虛擬環(huán)境中進(jìn)行開(kāi)發(fā),避免與系統(tǒng) Python 環(huán)境發(fā)生沖突。
- 使用
deactivate
停用虛擬環(huán)境,并使用requirements.txt
管理項(xiàng)目的依賴。