Django-web應用

1     web應用介紹

1.1   web

web(World Wide Web)即全球廣域網,也稱爲萬維網,它是一種基於超文本和HTTP的、全球性的、動態交互的、跨平臺的分佈式圖形信息系統。html

1.2   web應用

Web 應用(簡稱 Web 應用)是用於託管 Web 應用程序、REST API 和移動後端的服務java

1.3   Web應用程序

Web應用程序是一種能夠經過Web訪問的應用程序,程序的最大好處是用戶很容易訪問應用程序,用戶只須要有瀏覽器便可,不須要再安裝其餘軟件。應用程序有兩種模式C/S、B/S。C/S是客戶端/服務器端程序,也就是說這類程序通常獨立運行。而B/S就是瀏覽器端/服務器端應用程序,這類應用程序通常藉助谷歌,火狐等瀏覽器來運行。WEB應用程序通常是B/S模式。Web應用程序首先是「應用程序」,和用標準的程序語言,如java,python等編寫出來的程序沒有什麼本質上的不一樣。在網絡編程的意義下,瀏覽器是一個socket客戶端,服務器是一個socket服務端。python

這就是web應用的本質,web應用是應用 程序,而這些應用程序是socket模塊的應用web

 

 

2  web應用的代碼實現

2.1   web服務器:

 1 import socket
 2 
 3 def handle_request(client):
 4     # 服務端接收到的數據
 5     request_data = client.recv(1024)
 6     print("request_data: ",request_data)
 7 
 8     # 給客戶端發送的響應消息
 9     client.send("HTTP/1.1 200 OK\r\nstatus: 200\r\nContent-Type:text/html\r\n\r\n".encode("utf8"))
10     client.send("<h1>Hello, luffycity!</h1><img src=''>".encode("utf8"))
11 
12 def main():
13     # 建立服務端socket對象
14     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
15     # 綁定服務端IP和端口到套接字
16     sock.bind(('localhost',80))
17     # 服務端等待鏈接的數量限制
18     sock.listen(5)
19 
20     while True:
21         print("the server is waiting for client-connection....")
22         # 服務端accept接收的Conn(全雙工管道)   是客戶端傳過來的socket對象
23         connection, address = sock.accept()
24         # 接收到客戶端後的業務處理
25         handle_request(connection)
26 
27         # 與客戶端斷開鏈接
28         connection.close()
29 
30 if __name__ == '__main__':
31 
32     main()

 

 

 

2.2   web客戶端

客戶端是瀏覽器編程

2.3   測試

3  web應用代碼實現---數據在文件中

3.1  web服務器

 1 # -*- coding:utf-8 -*-
 2 import socket
 3 
 4 def handle_request(client):
 5     # 服務端接收到的數據
 6     request_data = client.recv(1024)
 7     print("request_data: ",request_data)
 8 
 9     with open('index.html','rb') as f:
10         data = f.read()
11     # 給客戶端發送的響應消息
12     client.send(b"HTTP/1.1 200 OK\r\nstatus: 200\r\nContent-Type:text/html\r\n\r\n"+data)
13 
14 
15 def main():
16     # 建立服務端socket對象
17     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
18     # 綁定服務端IP和端口到套接字
19     sock.bind(('127.0.0.1',8000))
20     # 服務端等待鏈接的數量限制
21     sock.listen(5)
22 
23     while True:
24         print("the server is waiting for client-connection....")
25         # 服務端accept接收的Conn(全雙工管道)   是客戶端傳過來的socket對象
26         connection, address = sock.accept()
27         # 接收到客戶端後的業務處理
28         handle_request(connection)
29 
30         # 與客戶端斷開鏈接
31         connection.close()
32 
33 if __name__ == '__main__':
34 
35     main()
web-server

3.2  web客戶端

瀏覽器後端

3.3  數據:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Hello, luffycity!</h1>
    <img src='https://img02.sogoucdn.com/app/a/100520024/b40399e55eaf25d133681a0f08daf312'>
</body>
</html>
index.html

3.4  測試:

 圖片爲何都使用網絡圖片而不使用呢?瀏覽器

這是由於img標籤沒法顯示本地圖片,本地圖片使用file協議。網絡圖片使用的是http協議服務器

相關文章
相關標籤/搜索