【一】Django框架版本介紹

【一】Django框架版本介紹

【一】Django框架版本
● Django 是一個高級的Python Web框架,由荷蘭人Armin Ronacher創建。
● 隨著版本的迭代和功能的不斷優化,Django在處理異步請求方面也有了顯著的進步。
【1】Django1.x
● 默認不支持異步
● Django 1.x主要集中在傳統的Web開發上,其設計思想傾向于同步HTTP請求處理。
● 默認情況下,并未內置對異步編程的支持,開發者若要在Django 1.x中實現異步處理,通常需要借助第三方庫如django-celery或django-tornado等來結合其他異步框架(如Celery、Tornado等)來實現后臺任務的異步執行。
【2】Django2.x
● 默認不支持異步
● 在Django 2.x版本中,雖然核心框架并未直接提供對異步HTTP請求的支持,但已經開始引入一些異步相關的新特性和API,比如asgi (Asynchronous Server Gateway Interface) 標準的初步支持。
● 開發者可以通過安裝第三方ASGI服務器(如daphne或uvicorn),配合channels庫使用,來實現Websockets和消息隊列等場景下的部分異步功能。
【3】Django3.x
● 自帶異步功能
● Django 3.x標志著其正式對異步編程的支持,它引入了channels框架作為標準庫的一部分,實現了全棧的WebSocket支持以及與asyncio的集成,使得開發者可以直接在視圖層、消費者層以及中間件層面編寫異步代碼,提供了ASGI和HTTP/2協議的底層支持。
● 此外,django-redis、django-socketio等第三方庫也進一步豐富了異步應用的構建能力。
【4】Django4.x
● 在Django 4.x版本之后,異步功能得到了持續加強和完善。
● 例如,在4.0中,channels框架進行了重大重構,使其更加輕量級和模塊化,同時引入了websockets庫作為默認WebSocket支持,大大簡化了開發者配置和使用的復雜度。
● 此外,對于長期支持計劃(LTS)版本,Django會確保異步相關的API和工具在后續更新中得到穩定且兼容的維護和支持,以滿足現代Web應用對高性能、低延遲的需求。
# 我們學習 3.2.12 版本 --- # 帶你們用 4.x 版本 --- 操作和 3.2.12 版本 是一致 如果有老項目 3.2.12 

【二】Django框架安裝

【1】前提

  • 你要知道你自己的系統解釋器版本和系統解釋器版本的位置

【2】安裝

pip install django # 默認按照最新版本安裝# 我們要學習 3.2.12 
pip install django==3.2.12pip install django==
# 會打印當前Django的所有版本 一直到 最新版

【3】注意事項

● 計算機名稱不要出現中文
● python解釋器版本不同可能會出現啟動報錯
● 項目中所有的文件名稱不要出現中文
● 多個項目文件盡量不要嵌套,做到一項一夾

在這里插入圖片描述

  • 啟動如果報錯,根據提示找到修改widgets.py文件第152行源碼,刪除最后的逗號即可

【三】Django框架基礎使用

【1】檢查當前Django版本

# 3.2.12 會知道版本
dream@DreamdeMacBook-Pro day54_Django % pip install django==3.2.12
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: django==3.2.12 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (3.2.12)
Requirement already satisfied: asgiref<4,>=3.3.2 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from django==3.2.12) (3.7.2)
Requirement already satisfied: pytz in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from django==3.2.12) (2023.3.post1)
Requirement already satisfied: sqlparse>=0.2.2 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from django==3.2.12) (0.4.4)
Requirement already satisfied: typing-extensions>=4 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from asgiref<4,>=3.3.2->django==3.2.12) (4.9.0)

【2】安裝之后會出現一個文件夾

在這里插入圖片描述

【3】查看Django命令

django-admin
django-adminType 'django-admin help <subcommand>' for help on a specific subcommand.Available subcommands:[django]checkcompilemessagescreatecachetabledbshelldiffsettingsdumpdataflushinspectdbloaddatamakemessagesmakemigrationsmigraterunserversendtestemailshellshowmigrationssqlflushsqlmigratesqlsequenceresetsquashmigrationsstartappstartprojecttesttestserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

【四】創建項目

django-admin startproject 項目名django-admin startproject demo01
  • 執行上述命令就會在當前路徑下出現一個文件夾叫 demo01

【2】PyCharm創建項目

在這里插入圖片描述

在這里插入圖片描述

【五】啟動項目

【1】Django命令行啟動

cd demo01
demo01          manage.py
  • 啟動項目
python310 manage.py runserver [IP:PORT]# 不寫 [IP:PORT] 默認就是 127.0.0.1:8000
dream@DreamdeMacBook-Pro demo01 % python310 manage.py runserver 
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
September 27, 2024 - 03:44:26
Django version 3.2.12, using settings 'demo01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C. # 如果 你想結束項目退出 CONTROL-C

【2】PyCharm啟動

  • 打開項目 是兩層
demo01 # 外邊一層項目名
├── db.sqlite3
├── demo01 # 里邊一層和項目名同名的文件夾
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   ├── settings.cpython-310.pyc
│   │   ├── urls.cpython-310.pyc
│   │   └── wsgi.cpython-310.pyc
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

在這里插入圖片描述

  • 修改端口

在這里插入圖片描述

在這里插入圖片描述

  • 再啟動項目的時候可能會遇到一個問題

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 配置文件不想改 想使用默認的 添加新配置啟動

在這里插入圖片描述

【六】創建APP

【1】APP概念介紹

● 在Django框架中,應用程序(Application)是組織和管理項目代碼的基本單元。
● 它不僅包含了與特定業務邏輯相關的模型、視圖、模板以及URL配置,還可能包括 forms、signals、中間件、管理后臺等組件,實現了項目的模塊化設計。
【1】介紹
● Django框架就像是一個高度模塊化的操作系統,為開發者提供了基礎設施和服務,如數據庫連接、認證授權、請求處理等。
【2】比喻
(1)大學與學院
● Django框架相當于是一所大學,應用相當于是大學里面的各個學院 ○ 大學相當于是個空殼子 ■ 負責提供環境○ 學院才是一個個真正具備特定功能的集合
(2)操作系統與服務
● 每個應用就像是操作系統中的一個進程或服務,負責處理特定領域的任務和數據操作。
● 用戶應用(user)關注用戶的注冊、登錄、權限管理等功能;
● 訂單應用(order)主要處理商品購買、訂單狀態跟蹤、支付確認等相關事務;
● 商品應用(goods)專注于商品信息管理、分類展示、搜索推薦等功能;
● 后臺管理應用(backend)則通常包含對系統設置、數據統計、權限控制等方面的集中管理和維護。
【2】示例
● 使用django寫一個淘寶,淘寶里面有很多功能模塊
● 我們應該先創建一個空的django項目然后根據功能的不同創建不同的應用
● django項目
應用名	業務
user	用戶相關業務:管理用戶賬戶信息(賬號、密碼、角色、權限)、用戶行為記錄、消息通知等
order	訂單相關業務:負責訂單生成、訂單詳情展示、訂單狀態變更、支付接口調用、物流追蹤及訂單評價等
goods	產品相關業務:包括商品分類管理、商品詳情展示、庫存管理、商品評論、瀏覽記錄等
promotion	促銷相關業務:針對促銷活動的規劃、優惠券發放、滿減規則設置、折扣計算等;
category	商品類別業務:用于商品類別樹的構建、導航菜單設置、新品上架、熱門推薦等;
logistics	物流相關業務:對接物流公司API以獲取物流信息、快遞單號追蹤等功能;
statistics	數據分析相關業務:收集并分析平臺各項運營數據,如訪問量、轉化率、客單價等,為決策提供支持;

【2】創建APP

  • 前提是當前文件夾路徑下有 manage.py
python manage.py startapp APP名字
python manage.py startapp user
  • 效果就是在當前項目路徑下出現了一個 user文件夾

【3】注冊APP

  • settings.py 中有一個代碼快
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 直接放自己創建的app名字即可"user"
]

【4】PyCharm創建APP

在這里插入圖片描述

startapp app名字

在這里插入圖片描述

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 方式一 直接寫 app 名字"user",# 方式二 : 寫具體的路徑"shop.apps.ShopConfig"
]

【七】Django項目文件介紹

DjangoProject54 # 主項目名 必須
├── DjangoProject54 # 存放Django項目的基本配置的文件夾 和你的項目名是同名的 必須
│   ├── __init__.py # 初始化項目需要加載的代碼 后面會寫
│   ├── __pycache__ # Python解釋器給Django項目的緩存文件  --- 在項目中看不到 不用管
│   │   ├── __init__.cpython-310.pyc # Python解釋器緩存文件
│   │   └── settings.cpython-310.pyc # settings 更改后的緩存
│   ├── asgi.py # 上線到服務器之后都需要配置的啟動文件 本地的項目不寫 不動
│   ├── settings.py # Django的項目配置文件
│   ├── urls.py # 跟路由映射文件
│   └── wsgi.py # 基于 wsgiref 模塊分裝后的 wsgi 模塊 去幫助你 創建 app 不動
├── manage.py # 加載Django項目的所有配置 并幫助我們啟動Django項目
├── templates
└── user # 自己創建的 APP 的名字├── __init__.py # 沒有東西 后面會寫 ├── admin.py # 我們在進入后臺管系統之后注冊內容 現在不寫 后面 寫├── apps.py # 當前APP 的默認配置 不要瞎改  不要動├── migrations # 數據庫遷移記錄文件夾 MySQL 將 Python代碼定義的數據庫結構轉換成SQL 語句│   └── __init__.py # 沒東西但是不允許刪除 必須有├── models.py # 存儲我們自己定義的數據庫模型 自己通過 Python代碼定義的數據庫字段├── tests.py # Django的測試文件 不用管└── views.py # 自己寫的業務邏輯在的地方

【八】小白必會三板斧

from django.shortcuts import render,HttpResponse,redirect
from django.shortcuts import render, HttpResponse, redirect# Create your views here.
# 定義視圖函數并且有一個 request 參數必寫
def index(request):# 返回純文本內容return HttpResponse("OK")def login(request):# 返回 頁面 對象return render(request, "login.html")def register(request):print("歡迎來到注冊函數")# 重定向路由# http://127.0.0.1:8000/register/# 自動幫你轉接到 http://127.0.0.1:8000/login/return redirect("/login/")'''[27/Sep/2024 04:22:31] "GET /register/ HTTP/1.1" 302 0[27/Sep/2024 04:22:31] "GET /login/ HTTP/1.1" 200 145'''

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95011.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git 大文件上傳不了的 問題

你 還是在 cmd 里執行&#xff0c;Select-String 是 PowerShell 的命令&#xff0c;cmd 不認識。 請務必按下面的步驟 切換到 PowerShell 再運行。? 1. 打開 PowerShell&#xff08;不要再用 cmd&#xff09;最簡單&#xff1a; 在資源管理器里進入 D:\linShiWenjian\my-react…

【FIX】go運行報錯“missing go.sum entry for module providing package”解決方案

&#x1f527; ?核心解決方案?**運行 go mod tidy**? ?作用?&#xff1a;自動同步 go.mod和 go.sum文件&#xff0c;添加缺失依賴并移除無用條目。 go mod tidy?適用場景?&#xff1a;90% 的校驗和缺失問題可通過此命令解決。 ?注意?&#xff1a;若項目含私有倉庫&…

【實操教學】ArcGIS 如何進行定義坐標系

一、坐標系定義的方式創建數據時可直接完成坐標系定義&#xff1b;針對已創建的數據集&#xff08;涵蓋要素類、要素數據集及柵格數據集&#xff09;&#xff0c;則可通過以下這種方式定義&#xff1a;工具箱工具調用&#xff1a;使用 ArcGIS 工具箱中的 “定義投影&#xff08…

如何使用Windows自帶的PnPUtil命令來禁用/停用和啟用硬件設備

我來詳細講解一下如何使用 Windows 自帶的 PnPUtil 命令來禁用&#xff08;停用&#xff09; 和啟用硬件設備。 PnPUtil (即插即用實用工具) 是一個功能強大的命令行工具&#xff0c;主要用于安裝、卸載、枚舉和修改驅動程序包。對于硬件的啟用和禁用&#xff0c;它通過操作設…

鴻蒙Next媒體展示組件實戰:Video與動態布局全解析

今天我們來深入探討HarmonyOS Next中幾種核心媒體展示組件的使用方法&#xff0c;通過實際代碼示例展示如何打造豐富的多媒體體驗。HarmonyOS Next為開發者提供了一套強大而靈活的媒體展示組件&#xff0c;使開發者能夠輕松實現視頻播放、動態布局適應、全屏切換等常見多媒體功…

復現RoboDK機器人校準功能(以Staubli TX2?90L / TX200機械臂為測試對象,實測精度接近原廠)

本算法復現了 RoboDK 的機器人校準功能&#xff1a;在訓練集的理論校準后精度與 RoboDK 一致&#xff0c;在測試集的實測精度接近 Staubli 原廠。 參考&#xff1a;RoboDK 機器人校準功能&#xff08;https://robodk.com.cn/cn/robot-calibration&#xff09; 特性 支持 SDH 參…

Vue常用指令和生命周期

Vue 是基于 MVVM模型的前端 JavaScript 框架。Vue 核心是數據驅動視圖&#xff0c;通過響應式數據實現視圖自動更新。<template><div>{{ message }}</div><button click"changeMsg">修改內容</button> </template><script se…

深度學習周報(8.25~8.31)

目錄 摘要 Abstract 1 RNN學習意義 2 RNN基礎知識 2.1 核心思想 2.2 傳播 2.3 優缺點 2.4 變體結構與應用場景 3 RNN結構代碼示例 4 總結 摘要 本周主要學習了循環神經網絡的學習意義與基礎知識&#xff0c;重點了解了RNN循環連接的核心思想、前向傳播與反向傳播過程…

借助 LAMBDA 公式,實現單元格區域高效轉換

新特性介紹 “轉換單元格&#xff08;Transform&#xff09;” 功能允許用戶將自定義的單參數 LAMBDA 公式應用于選中的單元格區域。用戶可選擇公式參數的作用域 —— 按單元格、按行、按列或按整個區域。 轉換完成后&#xff0c;源單元格區域會被清空&#xff0c;轉換后的區…

LeetCode 01背包 494. 目標和

494. 目標和給你一個非負整數數組 nums 和一個整數 target 。 向數組中的每個整數前添加 ‘’ 或 ‘-’ &#xff0c;然后串聯起所有整數&#xff0c;可以構造一個 表達式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 ‘’ &#xff0c;在 1 之前…

Dify 1.8.0 全網首發,預告發布

距離Dify 1.7.2過去兩周了 Dify 1.8.0 又跟大伙見面了&#xff01; 1.8.0&#xff0c;屬于主版本號不變、但第二位數字更新的“階段性大更”&#xff0c;意味著功能上的顯著優化和體驗上的重要升級。 根據官方的Github日志&#xff0c;這一版本將繼續聚焦三大核心方向&#x…

基于LangChain框架搭建AI問答系統(附源碼)

AI問答系統1. 背景知識2. 問答系統流程3. 知識問答系統相關組件3.1 文檔加載器3.2 文檔切割器3.3 嵌入模型包裝器3.4 向量存儲庫3.5 模型包裝器3.6 鏈組件4. 問答系統演示4.1 問答程序4.2 演示大模型回答效果5.問答系統代碼1. 背景知識 在人工智能技術飛速發展的今天&#xff…

【Python】QT(PySide2、PyQt5):Qt Designer,VS Code使用designer,可能的報錯

Qt designer&#xff1a;可直接在designer界面&#xff0c;使用拖拽的方式設計需要的界面&#xff0c;可設定部分屬性。安裝Pyside2后&#xff0c;designer默認在python安裝目錄的Lib/sit_packages/PySide2文件夾中。designer使用&#xff1a;① 雙擊打開designer.exe&#xff…

前端常見安全問題 + 防御方法 + 面試回答

目錄 XSS&#xff08;跨站腳本攻擊&#xff09;CSRF&#xff08;跨站請求偽造&#xff09;SQL 注入文件上傳漏洞其他前端常見安全問題面試常見問答 1. XSS&#xff08;跨站腳本攻擊&#xff09; 定義 XSS&#xff08;Cross-Site Scripting&#xff09;是一種 通過注入惡意腳…

jxWebUI--下拉選擇框

下拉選擇框提供了預先定義好的選項&#xff0c;用戶只能在這些選項中選擇輸入。 combobox 定義格式 combobox 控件名 屬性列表 ;屬性 bind 類型&#xff1a;string 缺省值&#xff1a; 輸入控件所綁定的變量名。當給輸入控件bind了一個變量名后【bindbind_var_name】&#xff0…

大模型時代:用Redis構建百億級向量數據庫方

大模型時代&#xff1a;用Redis構建百億級向量數據庫方案第一章&#xff1a;大模型時代的向量數據庫挑戰1.1 大模型時代的特征與需求1.2 向量數據庫的核心價值1.3 百億級向量的技術挑戰第二章&#xff1a;Redis作為向量數據庫的優勢2.1 Redis的核心優勢2.2 Redis向量搜索模塊&a…

jsqlparser(六):TablesNamesFinder 深度解析與 SQL 格式化實現

在數據庫應用開發中&#xff0c;SQL語句的解析和處理是一項常見而重要的任務。本文將深入探討 JSQLParser 中的 TablesNamesFinder 類&#xff0c;分析其核心原理、與 AST 訪問接口&#xff08;CCJSqlParserVisitor &#xff09;的關系、使用場景&#xff0c;并通過實際代碼示例…

Python訓練營打卡Day49-神經網絡調參指南

知識點回顧&#xff1a;隨機種子內參的初始化神經網絡調參指南 參數的分類調參的順序各部分參數的調整心得 作業&#xff1a;對于day41的簡單cnn&#xff0c;看看是否可以借助調參指南進一步提高精度。 隨機種子 import torch import torch.nn as nn# 定義簡單的線性模型&…

Elasticsearch 常用任務管理命令及實戰應用

常用任務管理命令 列出所有任務 curl -X GET "http://<es_host>:<es_port>/_tasks?detailedtrue&pretty" -H Content-Type: application/json獲取特定類型的任務 curl -X GET "http://<es_host>:<es_port>/_tasks?actions<act…

Java試題-選擇題(26)

Java試題-選擇題(26) 題目 下列有關Thread的描述,哪個是正確的 ? A:啟動一個線程的方法是:thread. run() B:結束一個線程的通常做法是:thread. stop() C:將一個線程標記成daemon線程,意味著當主線程結束,并且沒有其它正在運行的非daemon線程時,該daemon線程也會自…