Django入门-项目创建与初识子应用
一、預(yù)備知識(shí)
HTTP協(xié)議的認(rèn)識(shí)
HTTP協(xié)議就是客戶(hù)端和服務(wù)端之間數(shù)據(jù)傳輸?shù)母袷揭?guī)范,格式簡(jiǎn)稱(chēng)為“超文本傳輸協(xié)議”。
-
基于TCP/IP
(1)HTTP是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議
(2)HTTP協(xié)議工作于客戶(hù)端-服務(wù)端架構(gòu)上。 -
基于請(qǐng)求-相應(yīng)模式
(1)瀏覽器為HTTP客戶(hù)端通過(guò)URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請(qǐng)求
(2)WEB服務(wù)根據(jù)接收到的請(qǐng)求后,向客戶(hù)端發(fā)送響應(yīng)信息。
為什么說(shuō)HTTP協(xié)議是無(wú)狀態(tài)協(xié)議?
HTTP是一種不保存狀態(tài),即無(wú)狀態(tài)(stateless)協(xié)議。HTTP協(xié)議自身不對(duì)請(qǐng)求和響應(yīng)之間的通信狀態(tài)進(jìn)行保存。
怎么解決HTTP協(xié)議無(wú)狀態(tài)協(xié)議?
無(wú)狀態(tài)協(xié)議解決辦法:
- 通過(guò)Cookie
- 通過(guò)Session會(huì)話保存
Http請(qǐng)求中常見(jiàn)的請(qǐng)求方式
根據(jù) HTTP 標(biāo)準(zhǔn),HTTP 請(qǐng)求可以使用多種請(qǐng)求方法。
- HTTP1.0 定義了三種請(qǐng)求方法: GET, POST 和 HEAD方法。
- HTTP1.1 新增了六種請(qǐng)求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
MVC模式和MTV模式
MVC 模式
MVC 就是把Web應(yīng)用分為模型(M),控制器?和視圖(V)三層,他們之間以一種插件式的、松耦合的方式
連接在一起,模型負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的映射( ORM ),視圖負(fù)責(zé)與用戶(hù)的交互(頁(yè)面),控制器接受用戶(hù)
的輸入調(diào)用模型和視圖完成用戶(hù)的請(qǐng)求。
MTV 模式
MTV模式本質(zhì)上和 MVC 是一樣的,也是為了各組件間保持松耦合關(guān)系,只是定義上有些許不同,在
Python的世界中,基本(除了Pylons)都使用了 MVC 的變種 MTV (Model Templates View 模型-模板視圖)。
Django 的MTV分別是值:
- M 代表模型(Model): 負(fù)責(zé)業(yè)務(wù)對(duì)象和數(shù)據(jù)庫(kù)的關(guān)系映射( ORM )。
- T 代表模板 (Template):負(fù)責(zé)如何把頁(yè)面展示給用戶(hù)( html )。
- V 代表視圖(View): 負(fù)責(zé)業(yè)務(wù)邏輯,并在適當(dāng)時(shí)候調(diào)用Model和Template。
除了以上三層之外,還需要一個(gè)URL分發(fā)器,它的作用是將一個(gè)個(gè)URL的頁(yè)面請(qǐng)求分發(fā)給不同的View處理,View再調(diào)用相應(yīng)的Model和Template,MTV的響應(yīng)模式如下所示:
二、Django 快速入門(mén)
Django框架介紹
什么是框架?
- 軟件框架就是為實(shí)現(xiàn)或完成某種軟件開(kāi)發(fā)時(shí),提供了一些基礎(chǔ)的軟件產(chǎn)品,
- 框架的功能類(lèi)似于 基礎(chǔ)設(shè)施 ,提供并實(shí)現(xiàn)最為基礎(chǔ)的軟件架構(gòu)和體系
- 通常情況下我們依據(jù)框架來(lái)實(shí)現(xiàn)更為復(fù)雜的業(yè)務(wù)程序開(kāi)發(fā)二個(gè)字,框架就是程序的骨架
Python 中常見(jiàn)的框架有哪些?
- 大包大攬 Django 被官方稱(chēng)之為完美主義者的Web框架。
- 力求精簡(jiǎn) web.py 和 Tornado
- 新生代微框架 Flask 和 Bottle
Django 框架介紹
- Django 是一個(gè)高級(jí)的Python Web框架,它鼓勵(lì)快速開(kāi)發(fā)和清潔,務(wù)實(shí)的設(shè)計(jì)。
- 由經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員構(gòu)建,它負(fù)責(zé)Web開(kāi)發(fā)的許多麻煩,因此您可以專(zhuān)注于編寫(xiě)應(yīng)用程序,而無(wú)需重新創(chuàng)建輪子。
- 免費(fèi)的和開(kāi)源的。
- 被官方稱(chēng)之為完美主義者的Web框架。
官方網(wǎng)址:django
Django 框架的特點(diǎn)
Django 可以使用什么Python版本?
Django 的開(kāi)發(fā)版本
Django 的安裝
如果速度慢的話可以-i 指定國(guó)內(nèi)的源,
清華大學(xué):https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
三、Django快速入門(mén) —后臺(tái)管理
第一步:創(chuàng)建并運(yùn)行Django項(xiàng)目
運(yùn)行
訪問(wèn)http://127.0.0.1:8000/
第二步:應(yīng)用的創(chuàng)建和使用
(1) 創(chuàng)建第一個(gè)應(yīng)用程序
- Django 自帶一個(gè)實(shí)用程序,可以自動(dòng)生成應(yīng)用程序的基本目錄結(jié)構(gòu),因此您可以專(zhuān)注于編寫(xiě)代碼而不是創(chuàng)建目錄。
- 在一個(gè)項(xiàng)目中可以創(chuàng)建一到多個(gè)應(yīng)用,每個(gè)應(yīng)用進(jìn)行一種業(yè)務(wù)處理
- 創(chuàng)建應(yīng)用的命令:
啟用后臺(tái)Admin 站點(diǎn)管理
- 站點(diǎn)分為“內(nèi)容發(fā)布(后臺(tái)管理)”和“公共訪問(wèn)(前臺(tái)管理)”兩部分
- “內(nèi)容發(fā)布”的部分負(fù)責(zé)添加、修改、刪除內(nèi)容,開(kāi)發(fā)這些重復(fù)的功能是一件單調(diào)乏味、缺乏創(chuàng)造力的工作。
- 因此, Django 會(huì)根據(jù)定義的模型類(lèi)完全自動(dòng)地生成管理模塊
Django 框架中有一個(gè)非常強(qiáng)大的應(yīng)用功能: 自動(dòng)管理界面。 常被Web平臺(tái)管理者使用,去管理整個(gè)
Web平臺(tái)。
默認(rèn)情況下,在 settings.py 配置文件中 INSTALLED_APPS 包含以下應(yīng)用程序,為了后續(xù)的開(kāi)發(fā),默
認(rèn)這些應(yīng)用程序都是包含在里面的。
| django.contrib.admin | 管理網(wǎng)站 |
| django.contrib.auth | 認(rèn)證管理 |
| django.contrib.contenttypes | 內(nèi)容類(lèi)型的框架 |
| django.contrib.sessions | 會(huì)話框架 |
| django.contrib.messages | 消息框架。 |
| django.contrib.staticfiles | 管理靜態(tài)文件的框架 |
(0). 數(shù)據(jù)庫(kù)遷移
使用這些 Django 自帶的應(yīng)用程序,需要我們?cè)跀?shù)據(jù)庫(kù)中創(chuàng)建一些數(shù)據(jù)表對(duì)應(yīng),然后才能使用它們。
http://127.0.0.1:8000/admin
(1). 創(chuàng)建管理員用戶(hù)
- 啟動(dòng)服務(wù)器,通過(guò) “127.0.0.1:8000/admin” 訪問(wèn),輸入上面創(chuàng)建的用戶(hù)名、密碼完成登錄
- 進(jìn)入管理站點(diǎn),默認(rèn)可以對(duì) groups、users 進(jìn)行管理
(2). 管理界面本地化
編輯 settings.py 文件,設(shè)置編碼、時(shí)區(qū)
(2) 編寫(xiě)第一個(gè)視圖函數(shù)
我們來(lái)寫(xiě)第一個(gè)視圖。打開(kāi)文件 bookApp/views.py 并放入以下Python代碼:
打開(kāi)文件BookMange/urls.py,加入以下代碼
from bookApp.views import index urlpatterns = {path('admin/', admin.site.urls),path('index/', index), }訪問(wèn)127.0.0.1:8000/index/
(3) 路由規(guī)則
要在 bookApp 目錄中創(chuàng)建一個(gè) URLconf ,創(chuàng)建一個(gè)名為 urls.py 。如下所示:
根據(jù)配置文件 BookManage/settings 可知路由查找的主文件是 BookManage/urls.py , 因此在該文件
添加一條 url 規(guī)則:
(4) 效果展示
- 啟動(dòng)服務(wù)器
- 訪問(wèn) url 地址: http:// 127.0.0.1:8000/book/ 如果看到主頁(yè)內(nèi)容 圖書(shū)管理系統(tǒng) 即成功。
- 可以通過(guò)html將頁(yè)面變得好看,改變字體大小顏色等。。。。
編寫(xiě)視圖的 bookApp/views.py
url() 函數(shù)介紹
Django url() 可以接收四個(gè)參數(shù),分別是兩個(gè)必選參數(shù): regex 、 view 和兩個(gè)可選參數(shù):kwargs 、 name 。
- regex : 正則表達(dá)式,與之匹配的 URL 會(huì)執(zhí)行對(duì)應(yīng)的第二個(gè)參數(shù) view。
- view : 用于執(zhí)行與正則表達(dá)式匹配的 URL 請(qǐng)求。
- kwargs : 視圖使用的字典類(lèi)型的參數(shù)。
- name : 用來(lái)反向獲取 URL。
總結(jié)
以上是生活随笔為你收集整理的Django入门-项目创建与初识子应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python面向对象的高级特性
- 下一篇: k8s的网络优化(metallb)