」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PWA 和 Django #什麼是漸進式 Web 應用程式?

PWA 和 Django #什麼是漸進式 Web 應用程式?

發佈於2024-11-06
瀏覽:144

最初發佈在Substack 上: https://andresalvareziglesias.substack.com/p/pwa-and-django-1-what-is-a-web-application?r=1ymfiv

目前的網路應用程式不僅僅是顯示互動資訊的網頁。有時,它們的行為幾乎就像本機應用程式一樣。他們使用什麼樣的魔法來做到這一點?本系列文章將回答這個問題...

PWA and Django #What is a Progressive Web Application?

什麼是漸進式 Web 應用程式

我喜歡 Mozilla 開發者網站 (https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) 上 PWA 的定義:

漸進式 Web 應用程式 (PWA) 是使用 Web 平台技術建立的應用程序,但提供類似於特定於平台的應用程式的使用者體驗。與網站一樣,PWA 可以透過單一程式碼庫在多個平台和裝置上運行。與特定於平台的應用程式一樣,它可以安裝在設備上,可以在離線和後台運行,並且可以與設備和其他已安裝的應用程式整合。

它是本機應用程式和網頁之間的混合體,這要歸功於當今網頁瀏覽器的令人難以置信的功能,例如:

  • 嵌入式資料庫
  • 線下工作者
  • 桌面與行動作業系統整合
  • ETC。

在本系列文章中,我們將在 Google Project IDX 的幫助下,使用我們喜愛的 Django 開發一個離線且可安裝的漸進式 Web 應用程式。

建立演示環境

建立 github 儲存庫:

PWA and Django #What is a Progressive Web Application?

在 IDX 中建立新應用程式並匯入該儲存庫:

PWA and Django #What is a Progressive Web Application?

從 IDX 控制台初始化 Django 應用程式:

python -m venv ~/.venv
source ~/.venv/bin/activate

mkdir src
cd src

echo "django" > requirements.txt
pip install --upgrade pip
pip install -r requirements.txt

django-admin startproject djangopwa

進行初始遷移並運行伺服器:

python manage.py migrate
python manage.py runserver

在專案 https://github.com/arifnd/nix-idx/ 的幫助下建立 IDX 檔案以啟用嵌入式預覽,該專案編譯了多個 IDX 配置:

cd ~/djangopwa 
wget https://raw.githubusercontent.com/arifnd/nix-idx/main/python/django/devserver.sh
cd ~/djangopwa/.idx
wget https://raw.githubusercontent.com/arifnd/nix-idx/main/python/django/dev.nix

注意:根據需要編輯預設的 dev.nix 和 devserver.sh 並重新啟動 IDX 環境

然後,建立演示應用程式:

python manage.py startapp demo

新增空白視圖:

from django.shortcuts import render

def index(request):
    context = {}
    return render(request, "index.html", context)

創建到新應用程式的路由:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("", include("demo.urls")),
    path('admin/', admin.site.urls),
]

再等幾天,下一章!

PWA and Django #What is a Progressive Web Application?

關於名單

在Python和Docker的貼文中,我也會寫一些其他相關主題,例如:

  • 軟體架構
  • 程式設計環境
  • Linux作業系統
  • ETC。

如果您發現一些有趣的技術、程式語言或其他什麼,請告訴我!我總是願意學習新事物!

關於作者

我是 Andrés,一位來自帕爾馬的全端軟體開發人員,我正在踏上提高編碼技能的個人旅程。我也是一位自行出版的奇幻作家,以我的名字出版了四本小說。有什麼問題都可以問我!

版本聲明 本文轉載於:https://dev.to/doctorserone/pwa-and-django-1-what-is-a-progressive-web-application-1k3c?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 探索 Java 23 的新特性
    探索 Java 23 的新特性
    親愛的開發者、程式設計愛好者和學習者, Java 開發工具包 (JDK) 23 已正式發布(2024/09/17 正式發布),標誌著 Java 程式語言發展的另一個重要里程碑。此最新更新引入了大量令人興奮的功能和增強功能,旨在改善開發人員體驗、效能和模組化。 在本文中,我將分享 JDK 23 的一...
    程式設計 發佈於2024-11-06
  • ES6 陣列解構:為什麼它沒有如預期般運作?
    ES6 陣列解構:為什麼它沒有如預期般運作?
    ES6 陣列解構:不可預見的行為在ES6 中,陣列的解構賦值可能會導致意外的結果,讓程式設計師感到困惑。下面的程式碼說明了一個這樣的實例:let a, b, c [a, b] = ['A', 'B'] [b, c] = ['BB', 'C'] console.log(`a=${a} b=${b} c...
    程式設計 發佈於2024-11-06
  • 如何調整圖像大小以適合瀏覽器視窗而不變形?
    如何調整圖像大小以適合瀏覽器視窗而不變形?
    調整圖片大小以適應瀏覽器視窗而不失真調整圖片大小以適應瀏覽器視窗是一項看似簡單的解決方案的常見任務。然而,遵守特定要求(例如保留比例和避免裁剪)可能會帶來挑戰。 沒有滾動條和 Javascript 的解決方案(僅限 CSS)<html> <head> <style&...
    程式設計 發佈於2024-11-06
  • 物件導向 - Java 中的方法
    物件導向 - Java 中的方法
    在Java中的物件導向程式設計中,方法在定義類別和物件的行為中起著至關重要的作用。它們允許您執行操作、操縱資料以及與其他物件互動。它們允許您執行操作、操縱資料以及與其他物件互動。在本文中,我們將探討 Java 中的方法、它們的特性以及如何有效地使用它們。 什麼是方法? 方法是類別中...
    程式設計 發佈於2024-11-06
  • 如何使用 MAMP 修復 Mac 上 Laravel 遷移中的「沒有這樣的檔案或目錄」錯誤?
    如何使用 MAMP 修復 Mac 上 Laravel 遷移中的「沒有這樣的檔案或目錄」錯誤?
    解決Mac 上Laravel 遷移中的「沒有這樣的文件或目錄」錯誤簡介: ]當嘗試在Mac 上的Laravel 專案中執行「php artisan migrate」指令時,使用者經常會遇到找不到檔案或目錄的錯誤。這個令人沮喪的問題可能會阻礙遷移過程並阻止開發人員在專案中取得進展。在本文中,我們將深入...
    程式設計 發佈於2024-11-06
  • SOLID 原則使用一些有趣的類比與車輛範例
    SOLID 原則使用一些有趣的類比與車輛範例
    SOLID 是電腦程式設計中五個良好原則(規則)的縮寫。 SOLID 允許程式設計師編寫更易於理解和稍後更改的程式碼。 SOLID 通常與使用物件導向設計的系統一起使用。 讓我們使用車輛範例來解釋 SOLID 原理。想像一下,我們正在設計一個系統來管理不同類型的車輛,例如汽車和...
    程式設計 發佈於2024-11-06
  • 如何從另一個非同步函數中的非同步函數返回解析值?
    如何從另一個非同步函數中的非同步函數返回解析值?
    如何從非同步函數傳回一個值? 在提供的程式碼中,init()方法傳回一個Promise,但getPostById() 方法嘗試直接存取 Promise 傳回的值。為了解決這個問題,需要修改 init() 方法,使其在 Promise 解析後傳回 getPostById() 的值。 更新後的程式碼如下...
    程式設計 發佈於2024-11-06
  • 了解如何使用 React 建立多人國際象棋遊戲
    了解如何使用 React 建立多人國際象棋遊戲
    Hello and welcome! ?? Today I bring a tutorial to guide you through building a multiplayer chess game using SuperViz. Multiplayer games require real-t...
    程式設計 發佈於2024-11-06
  • 如何使用 JavaScript 正規表示式驗證 DD/MM/YYYY 格式的日期?
    如何使用 JavaScript 正規表示式驗證 DD/MM/YYYY 格式的日期?
    使用JavaScript 正規表示式驗證DD/MM/YYYY 格式的日期驗證日期是程式設計中的常見任務,並且能夠確保日期採用特定格式至關重要。在 JavaScript 中,正規表示式提供了執行此類驗證的強大工具。 考慮用於驗證YYYY-MM-DD 格式日期的正規表示式模式:/^\d{4}[\/\-]...
    程式設計 發佈於2024-11-06
  • JavaScript 中的節流與去抖:初學者指南
    JavaScript 中的節流與去抖:初學者指南
    使用 JavaScript 時,過多的事件觸發器可能會降低應用程式的速度。例如,使用者調整瀏覽器視窗大小或在搜尋列中輸入內容可能會導致事件在短時間內重複觸發,進而影響應用程式效能。 這就是節流和去抖可以發揮作用的地方。它們可以幫助您管理在處理過於頻繁觸發的事件時呼叫函數的頻率。 ...
    程式設計 發佈於2024-11-06
  • 在 Go 中匯入私人 Bitbucket 儲存庫時如何解決 403 Forbidden 錯誤?
    在 Go 中匯入私人 Bitbucket 儲存庫時如何解決 403 Forbidden 錯誤?
    Go 從私有Bitbucket 儲存庫匯入問題排查(403 禁止)使用go get 指令從Bitbucket.org 匯入私人儲存庫可能會遇到403 Forbidden 錯誤。若要解決此問題,請依照下列步驟操作:1.建立 SSH 連線:確保您已設定 SSH 金鑰並且能夠使用 SSH 連線至 Bitb...
    程式設計 發佈於2024-11-06
  • Singleton 和原型 Spring Bean 範圍:詳細探索
    Singleton 和原型 Spring Bean 範圍:詳細探索
    当我第一次开始使用 Spring 时,最让我感兴趣的概念之一是 bean 范围的想法。 Spring 提供了各种 bean 作用域,用于确定在 Spring 容器内创建的 bean 的生命周期。最常用的两个范围是 Singleton 和 Prototype。了解这些范围对于设计高效且有效的 Spri...
    程式設計 發佈於2024-11-06
  • 如何有效平滑雜訊資料曲線?
    如何有效平滑雜訊資料曲線?
    優化平滑雜訊曲線考慮近似的資料集:import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) np.random.random(100) * 0.2這包括 20% 的變化。 UnivariateSpline 和移動平均線等方...
    程式設計 發佈於2024-11-06
  • 如何在 MySQL 中為有序序列值重新編號主索引?
    如何在 MySQL 中為有序序列值重新編號主索引?
    為有序序列值重新編號主索引如果您的MySQL 表的主索引(id) 以不一致的順序出現(例如,1、 31, 35, 100),您可能會想要將它們重新排列成連續的系列(1, 2, 3, 4)。 要實現此目的,您可以採用以下方法而不建立臨時表:SET @i = 0; UPDATE table_name S...
    程式設計 發佈於2024-11-06
  • 增強的物​​件文字
    增強的物​​件文字
    ES6引進了3種編寫物件字面量的方法 第一種方法: - ES6 Enhanced object literal syntax can take an external object like salary object and make it a property of the developer...
    程式設計 發佈於2024-11-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3