網(wǎng)絡(luò)應(yīng)用的模式
B/S - Browser / Server - 瀏覽器/服務(wù)器模式的應(yīng)用
好處: 不用安裝客戶端,不需要更新
體驗(yàn)和特效不錯(cuò)
如:webQQ, 所有現(xiàn)在端游居多
C/S - Client / Server - 客戶端/服務(wù)器模式的應(yīng)用
缺點(diǎn): 必須要安裝客戶端, 假如更新又要安裝
但是體驗(yàn)和特效更好
如:QQ,英雄聯(lián)盟,專業(yè)的編程工具(雖然這些有網(wǎng)頁版的但是做的不細(xì)致)
- 基本概念
~ URL(Universal Resource Locator) / URI(Universal Resource Identifier)
統(tǒng)一資源定位符/統(tǒng)一資源標(biāo)識(shí)符
http://www.baidu.com:80/index.html
協(xié)議 域名或IP地址 端口號(hào) 路徑(/) 資源
HTTP - 超文本傳輸協(xié)議 - Hyper-Text Transfer Protocol - 應(yīng)用級(jí)協(xié)議
基于TCP提供的可靠傳輸服務(wù)來傳遞超文本
超文本 - 到另一個(gè)文檔或文本的單詞祈坠,短語或大塊文本赶盔。超文本涵蓋了文本超鏈接和圖形超鏈接
端口號(hào): 它是用來區(qū)分服務(wù)的
如: 80 - 默認(rèn)的端口
1 - 比如是下載的端口
2 - 比如是新聞頁面的端口
HTTP請(qǐng)求報(bào)文 - request
請(qǐng)求行 - GET /index.html HTTP/1.1
請(qǐng)求頭 - 鍵值對(duì)
空行
消息體(瀏覽器發(fā)給服務(wù)器的數(shù)據(jù))
HTTP響應(yīng)報(bào)文 - response
響應(yīng)行 - HTTP/1.1 200 OK
響應(yīng)頭 - 鍵值對(duì)
空行
消息體(服務(wù)器發(fā)給瀏覽器的數(shù)據(jù))
實(shí)際就是 我們處理用戶發(fā)送的請(qǐng)求, 然后響應(yīng)給用戶, 所以這時(shí)我們可以用封裝好的框架(比如django, flask) 有了框架我們處理請(qǐng)求只需要調(diào)用寫的方法就行了
用Python程序處理來自瀏覽器的用戶請(qǐng)求并生成響應(yīng)的內(nèi)容輸出到瀏覽器呈現(xiàn)給用戶
~ DNS(Domain Name System) - 域名系統(tǒng)
域名 ---解析---> IP地址
比如我們隨便輸入一個(gè)網(wǎng)址,它會(huì)先在本地找(有沒有緩存),
然后再找它爸爸,再?zèng)]有找爺爺,
仍然沒有就去找根DNS(全球也就幾臺(tái)),
如果還沒有,就沒有該網(wǎng)址!
~ 反向代理 - 隱藏真實(shí)的服務(wù)器,免于將真實(shí)的服務(wù)器暴露在公網(wǎng),實(shí)施負(fù)載均衡
目前Nginx用的比較多
Nginx / LVS
用ping 網(wǎng)址 可以查看ip, 但不是他真正的ip (隱藏真實(shí)的服務(wù)器)
如:
ping www.baidu.com
~ Web服務(wù)器 - Nginx / Apache - 處理靜態(tài)資源
用戶量如果有很多,此時(shí)就需要很多臺(tái)機(jī)器,
而且有上面的反向代理,可以負(fù)載均衡(
免得一個(gè)服務(wù)器上處理一億數(shù)據(jù),而另一個(gè)服務(wù)器不處理)
~ WSGI服務(wù)器 - 連接Web服務(wù)器和Python程序的橋梁 - uWSGI / Gunicorn(獨(dú)角獸)
Web Server Gateway Interface
二,python環(huán)境安裝 和 django安裝(在環(huán)境下安裝)
因?yàn)檫@樣避免沖突,給它一個(gè)純凈的環(huán)境
1.在終端中創(chuàng)建環(huán)境和django
a. 先找到你想創(chuàng)建文件夾的盤,然后創(chuàng)建文件夾
mkdir djangoday1
b.打開該文件夾
cd djangoday1
c.安裝python虛擬環(huán)境
蘋果/ubuntu安裝
python3 -m venv venv(文件名)
source venv/bin/activate
在windows CMD終端中
# 第一種
python -m venv venv
"venv/Scripts/activate"
# 第二種
# 前提是你要有這個(gè)工具(可以通過pip安裝)
pip install virtualenv
virtualenv --no-site-package venv
退出環(huán)境
deactivate
在環(huán)境下安裝django
pip install django
檢查依賴性是否沖突
pip check
查看你安裝的東西
pip freeze
創(chuàng)建第一個(gè)項(xiàng)目
django-admin startproject djangoday1 .
. - 表示當(dāng)前路徑下創(chuàng)建這個(gè)項(xiàng)目
運(yùn)行該項(xiàng)目
python manage.py runserver
打開setting.py文件
vim django1901(蘋果/ubuntu)
settings.py(windows找到這個(gè)py文件,用記事本打開)
# 設(shè)置為中文和時(shí)區(qū)
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Chongqing'
創(chuàng)建應(yīng)用 - 兩種方法
# 第一種
django-admin startapp 文件名
# 第二種
python manage.py startapp 文件名
MVT
views.py 負(fù)責(zé)業(yè)務(wù)邏輯并適當(dāng)調(diào)用Model和Template(相當(dāng)于一個(gè)控制器的一小部分) - V
models.py 負(fù)責(zé)業(yè)務(wù)與數(shù)據(jù)庫(ORM)的對(duì)象 - M
templates - 負(fù)責(zé)把頁面渲染展示給用戶 - T
注意: Django中還有一個(gè)url分發(fā)器梅掠,也叫作路由酌住。主要用于將url請(qǐng)求發(fā)送給不同的View處理,View在進(jìn)行相關(guān)的業(yè)務(wù)邏輯處理阎抒。
===================================
ubuntu下載pip
創(chuàng)建一個(gè)文件(終端中)
mkdir .pip
cd .pip