【Django入門】學習筆記01

来源:https://www.cnblogs.com/shuibeng/archive/2020/02/28/django01.html
-Advertisement-
Play Games

Django介紹 Django是一個基於Python的高級Web開發框架 它能夠讓開發人員進行高效且快速的開發 高度集成,方便開發 正常上網流程 打開瀏覽器 向目標URL發送一個HTTP請求 伺服器把頁面響應給瀏覽器 瀏覽網頁的基本原理 本質是 網路通信 ,即通過網路進行數據傳遞 瀏覽器經過通信後獲 ...


Django介紹

  • Django是一個基於Python的高級Web開發框架
  • 它能夠讓開發人員進行高效且快速的開發
  • 高度集成,方便開發

正常上網流程

打開瀏覽器->向目標URL發送一個HTTP請求->伺服器把頁面響應給瀏覽器

瀏覽網頁的基本原理

本質是網路通信,即通過網路進行數據傳遞
瀏覽器經過通信後獲取到該頁面的源代碼文檔
瀏覽器解析文檔後以適當的形式展示給用戶

網路響應流程

編輯器推薦

  • Pycharm
  • Sublime Text,Atom

Django項目開發

創建項目

  • 打開命令行,進入想要安置項目的目錄
  • 命令行輸入
django-admin startproject YourProjectName

項目目錄結構

項目目錄結構
查看可用命令(在manage.py當前目錄下執行)

python manage.py

目錄(這裡為myblog目錄)

  • 項目的一個容器
  • 包含項目最基本的一些配置
  • 目錄名稱不建議修改

項目目錄介紹

wsgi.py

  • WSGI(Web Server Gateway Interface)
  • Python伺服器網關介面
    urls.py
    -url配置文件
    settings.py
  • 項目總配置文件
  • 包含資料庫、Web應用、時間等各自配置
    **_init__.py**
  • Python中聲明模塊的文件
  • 內容預設為空

創建應用

  • 打開命令行,進入項目中manage.py同級目錄
  • 命令行輸入
python manage.py startapp YourAppName
  • 添加應用名到setting.py中的INSTALLED_APPS
    註意:應用名不能與已有名稱重覆,否則會報錯

migrations

  • 數據移植(遷移)模塊
  • 內容自動生成不需要管它

admin.py

  • 該應用的後臺管理系統配置

apps.py

  • 應用的配置文件

models.py

  • 數據模塊
  • 使用ORM框架

tests.py

  • 測試腳本

views.py

  • 執行響應代碼所在模塊
  • 代碼邏輯處理的主要地點
  • 主要寫代碼的地方

創建頁面

編輯blog.views

  • 每個響應對應一個參數,函數必須返回一個響應
  • 函數必須存在一個參數,一般約定為request
  • 每個響應(函數)對應一個URL

配置URL

編輯urls.py

  • 每個URL都以url形式寫出
  • url函數放在urlpatterns列表中
  • url函數的參數根據提示寫,一般常用為三個:URL、對應方法、名稱
    包含其他URL
  • 在根urls.py中引入include
  • app目錄下創建urls.py文件,根式與根urls.py相同
  • 根urls.py中url函數第二個參數改為include(YourAppName.urls')

配置Templates

Templates介紹
  • 一種HTML文件
  • 使用了Django模板語言(DTL)
  • 可以使用第三方模板(修改setting.py中TEMPLATE選項的BACKEND)
配置過程
  • 在APP目錄下創建Templates目錄
  • 在該目錄下創建HTML文件
  • 在views.py中返回render()
DTL的使用
  • render()函數中支持一個dict類型參數
  • 該字典是後臺傳遞到模板的參數,鍵為參數名
  • 在模板中使用{{參數名}}來直接使用

註意:
Django是按照INSTALLED_APPS中添加順序查找Templates
因此不同APP下Templates目錄中的同名html文件會造成衝突。

所以需要在APP的Templates目錄下創建以APP名為名稱的目錄
將html文件放入新創建的目錄下麵

Models

Models介紹

  • 一個Model對應資料庫的一張數據表
  • Django中Models以類的形式表現,包含一些基本欄位和數據的一些行為
ORM(對象關係映射)
  • 實現了對象和資料庫之間的映射
  • 隱藏了數據訪問的細節,不需要編寫SQL語句
步驟
  • 在應用根目錄下創建models.py,並引入models模塊
  • 創建類,繼承models.Model,即類是一張數據表
  • 在類中創建欄位
欄位創建
  • 欄位即類裡面的屬性(變數)
attr = models.CharField(max_length=64)
生成數據表
  • 在命令行中執行命令
python manage.py makemigrations YourAppName(可選)
  • 再次執行
python manage.py migrate
查看移植內容
  • app/migrations/ 下會有移植文件
  • 查看sql語句,執行
python manage.py sqlmigrate YourAppName FileId
  • 查看並編輯bd.sqlite3
    可以使用第三方軟體 SQLite Expert Personal

頁面呈現數據

  • views.py中import models
  • 輸入
value = models.Article.objexts.get(pk=1)
render(request,page,{'article':value})
  • 在html文檔可以直接使用對象以及對象的“.”操作
article.title

(未完待續)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • this是指當前對象 this.widget是指當前組件 比如我有一個 的組件ShapeStep,在_ShapeStepState中的this.widget才能訪問到str屬性,而this訪問不到。 ...
  • package com.cnblogs.test; import java.util.List; import java.util.Map; import com.google.common.collect.ImmutableMap; import com.google.common.collect ...
  • go 語言中文網(每日資訊)\_2020 02 28 一、Go 語言中文網 1. "Gopher 學習效率低怎麼辦?曹大談工程師應該怎麼學習 " 2. "Go 的 http 包中預設路由匹配規則" 3. "【每日一庫】Web 表單驗證利器:go playground/validator" 4. "從 ...
  • 此教程已支持最新2019.3版本 本教程適用Windows、Mac、Ubuntu等所有平臺。 激活前準備工作 配置文件修改已經不在bin目錄下直接修改,而是通過Idea修改 如果輸入code一直彈出來,請去hosts里移除jetbrains相關的項目 激活出現問題自己無法解決可在關註公眾號回覆 :i ...
  • 個人簡介 ​ Java後臺開發方向。 非電腦專業碩士,專業涉及到一些開發。 實驗室項目主要是Java Web系統,挖掘小亮點。 無實習經驗。 閑話嘮嗑 ​ 回顧這幾個月,宛若夢一場。 一開始心態不好,看到要學習的東西一大堆,沉不下心來學習,看什麼東西都是看著看著就很浮躁,開始瘋狂抖腿,沉迷幻想,以 ...
  • 授權 授權,也叫訪問控制,即在應用中控制誰能訪問哪些資源(如訪問頁面/編輯數據/頁面操作等)。在授權中需瞭解的幾個關鍵對象:主體(Subject)、資源(Resource)、許可權(Permission)、角色(Role)。 主體 主體,即訪問應用的用戶,在 Shiro 中使用 Subject 代表該 ...
  • 1、前言 公司內考慮到伺服器資源成本的問題,目前業務上還在進行服務的容器化改造和遷移,計劃將容器化後的服務,以及一些中間件(MQ、DB、ES、Redis等)儘量都遷移到其他機房。 那你們為什麼不用阿裡雲啊,騰訊雲啊,還用自己的機房? 的確是這樣,公司內部目前還是有專門的運維團隊。也是因為歷史原因,當 ...
  • 博客遷移 記錄《Effective C#》學習過程。 任務運行的幾種方法 //1.new方式實例化一個Task,需要通過Start方法啟動 Task task = new Task(() => { Console.WriteLine($"task1的線程ID為{Thread.CurrentThrea ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...