Django之web應用與web框架

Django之web應用與web框架

Django框架,師從yuanchenqi,內容摘自其博客和luffybook。html

1、web應用

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

import socket

def handle_request(client):
    request_data = client.recv(1024)
    print('request_data: ', request_data)
    client.send('HTTP/1.1 200 OK\r\n\r\n'.encode('utf-8'))
    client.send("<h1 style = 'color:red'>Hello world!</h1>".encode('utf-8'))

def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('localhost', 8800))
    sock.listen(5)

    while True:
        print('The server is waiting for client-connection')
        connection, address = sock.accept()
        handle_request(connection)
        connection.close()

if __name__ == '__main__':
    main()

2、web框架

web框架(web framework)是一種開發框架,用來支持動態網站、網絡應用和網絡服務的開發。這大多數的web框架提供了一套開發和部署網站的方式,也爲web行爲提供了一套通用的方法。web框架已經實現了不少功能,開發人員使用框架提供的方法完成本身的業務邏輯,就能快速開發web應用了。瀏覽器和服務器時基於HTTP協議進行通訊的。也能夠說web框架就是再以上十幾行代碼基礎上擴展出來的,有不少簡單方便使用的方法,大大提升了開發的效率。python

3、wsgiref模塊

最簡單的web應用就是先把HTML用文件保存好,用一個現成的HTTP服務器軟件,接收用戶的請求,從文件中讀取HTML,返回。web

若是要動態生成HTML,就須要把上述步驟本身來實現。不過,接收HTTP請求、解析HTTP請求、發送HTTP響應都是苦力活,若是咱們本身來寫這些底層代碼,還沒開始寫動態HTML就得花個把月去讀HTTP規範。django

正確的作法是底層代碼由專門的服務器軟件實現,咱們哦那個python專一於生成HTML文檔。由於咱們不但願接觸到TCP鏈接、HTTP原始請求和響應格式,讓咱們專心用python編寫web業務。這個接口就是WSGI:Web Server Gateway Interface。而wsgiref模塊就是python基於WSGI協議開發的服務模塊。編程

from wsgiref.simple_server import make_server


def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [b'<h1>Hello, world!</h1>']

httpd = make_server('', 8080, application)

print('Serving HTTP on port 8000...')
# 開始監聽HTTP請求:
httpd.serve_forever()

從本質上講,這個文件就能夠稱爲一個web框架。瀏覽器

相關文章
相關標籤/搜索