django 前奏之web框架本質
web框架
web應用本質上就是一個socket服務端,用戶的瀏覽器就是socket的客戶端。
** web 精簡版框架**
import socket
server = socket.socket()
server.bind(('127.0.0.1', 8080)) # 綁定IP+PORT
server.listen(5) # 同時允許5個等待的連接(半連接池)
while True:
conn, addr = server.accept() # 阻塞,等待客戶端鏈接
data = conn.recv(1024)
conn.send(b'HTTP/1.1 200 OK\r\n\r\n') # 通訊協議
print(data)
# 手動處理http數據獲取用戶訪問的路徑
# http://127.0.0.1:8080/index,訪問時,/index在請求頭的第二位,按如下方式處理
current_path = data.decode('utf-8').split('\r\n')[0].split(' ')[1]
if current_path == '/index':
conn.send(b'index')
else:
conn.send(b'404')
可以說web服務本質上都是在這十幾行代碼基礎上擴展出來的。這段代碼就是根本。
用戶在瀏覽器中輸入網址,瀏覽器會向服務端發送數據,而這個數據則要遵守HTTP協議的規則。
瀏覽發送請求信息也好,服務器回復響應響應信息也罷,都要遵守這個規則來。
既然HTTP協議主要規定了客戶端和服務器之間按的通信格式,那么HTTP協議是怎么規定信息格式的呢?
GET / HTTP/1.1
Host: 127.0.0.1:8080
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3355.4 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: csrftoken=CtHePYARJOKNx5oNVwxIteOJXpNyJ29L4bW4506YoVqFaIFFaHm0EWDZqKmw6Jm8
然后,我們可以查看當我們訪問博客園時,瀏覽器收到的響應信息是什么。
*響應相信息可以在瀏覽器調試窗口的Network標簽頁中看到。
點擊【view source】之后,顯示如下圖所示:
可以看到,收發的消息需要按照一定的格式來,這里就需要了解HTTP協議了。
智能推薦
python學習之web框架--Django 001
python感覺沒學到啥就要結課了,感覺沒做點什么,似乎是沒學過,想起能否用python來寫一個web項目呢? python也有很多好用的web框架,比如Django,flask等等 Django本來就封裝了很多東西,入門比較容易,于是決定選擇Django 話不多說,環境搭建: windows+python3 步驟1:安裝Django 執行命令: (紅色部分是版本號) pipinsta...
Django-web框架引入之MVC
MVC框架 Model(數據庫) View(模板文件) Controller(業務處理) 就等于 MTV Model(數據庫) Templete(模板文件) View(業務處理) 如在Controller中寫一個account.py 作為業務處理模塊 在View中寫入模板文件indel.html 然后主程序下運行 結果就是 小技巧: 在運行過程中,按交互框的方框鍵即終止鍵,然后debug,最后在網...
python web框架之Django隨筆總結
一.Django中url多級路由總結 1.1 django中多級路由映射 django項目中如果一個項目內又分多個app,那么合理的結構是每一個app都應該有一層api路由,通過一級路由映射到當前app中。 django中所有路由的入口在與settting.py同級的urls.py下,所有applications接口接收到的請求首先會轉發到此入口,然后根據此入口中的路由規則然后將url請求轉發到對...
Python Web框架——Django
使用框架簡單快速開發特定的系統。 一 MVC和MTV模式 二 簡介 Django時有Python開發的一個免費的開源網站框架,可以用于快速搭建高性能、優雅的網站。 Django框架的特點: 強大的數據庫功能 自帶強大的后臺功能 通過正則匹配隨意定義的網址 強大易擴展的模板系統 緩存系統 國際化 三 Django安裝方式 1.利用pip安裝Django。 2.利用源碼包安裝Django...
猜你喜歡
Web框架:Django
注:該文章為《Python核心編程》(第3版)學習筆記 1. Web框架 Web開發除了從頭寫起,還可以在他人已有的基礎上上進行開發,這樣的Web開發環境稱為Web框架。 ORM:object-relation mapper,對象關系映射器。 2. Django簡介 1) 預備條件 大多數部署都會使用Apeach 服務器。Djang...
Django Web框架
通過cmd命令行來新建一個web框架工程 先切換到指定的文件目錄下,然后輸入 生成框架如下 框架文件說明: 第一個mysite:外層目錄,名字可以更改 第二個mysite:工程目錄,用來保存代碼和文件 _init_:一個將mysite定義為包的空文件,用來初始化 settings:部署和配置整個工程的配置文件 urls:URL路由的聲明文件 wsgi:基于WSGI的web服務器配置文件 manag...
Django Web框架02
《Django Web框架》 目錄 文章目錄 《Django Web框架》 目錄 Django的框架設計模式 模板 Templates Django 模板語言 模板的傳參 模板的變量 XSS攻擊 反射型xss 存儲型xss DOM xss 模板的標簽 過濾器 模板的繼承 url 反向解析 Django的框架設計模式 MVC 設計模式 MVC 代表 Model-View-Controller(模型-...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...