一、1 基於socket手寫web框架
阿新 • • 發佈:2018-11-28
1 web 應用 2 c/s 和bs架構 3 python中的web框架 a :socket b:路由跟檢視函式匹配關係 c:模板渲染 django: a: 用了別人的wsgiref b:自己寫的 c:自己寫的 flask: a:用了別人的 b:自己寫的 c:用了別人的:jinja2 tornado: a 自己寫的 b:自己寫的 c:自己寫的 4 http協議: -特點:1 基於TCP/IP協議之上的應用層協議 2 基於請求-響應模式 3 無狀態儲存 4 短連線 -請求格式: -響應格式: 5 django的安裝和簡單使用 -安裝:1 pip3 install django==1.11.9 2 pycharm 下安裝,選擇版本號 -使用: 命令建立專案:django-admin startproject 專案名字 建立app:python3 manage.py startapp app01 -檔案目錄介紹: -manage.py---專案入口,執行一些命令 -專案名 -settings:全域性配置資訊 -urls:總路由,請求地址跟檢視函式的對映關係 -app名字 -migrations:資料庫遷移的記錄 -models.py 資料庫表模型 -views 檢視函式 -執行專案: pytyon3 manage.py runserver 127.0.0.1:8001 6 補充: 1 decode和encode data = b'111111' data = str(data, encoding='utf-8') print(type(data)) data = bytes(data, encoding='utf-8') print(type(data)) 2 pymysql連結資料庫 #拿到資料庫連結 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='lqz', password='admin') #獲得遊標,並且查詢結果資料是字典格式 cur=conn.cursor(pymysql.cursors.DictCursor) #執行sql cur.execute('select * from user') #獲取全部查詢結果 dic=cur.fetchall() 3 以後寫專案: 1 不要用中文 2 計算機名不能用中文 3 一個工程,就是一個專案 7 作業: 1 上課講的內容整理到部落格上 2 django下載下來,跑起來 3 單表的圖書管理系統 圖書的增刪改查 一個book表 id name price author publish 所有人都必須完成:查
認識web框架:
my_django.py
import socket server=socket.socket() server.bind(('127.0.0.1',8001)) server.listen(5) while True: conn,client_address=server.accept() data=conn.recv(1024) # 等客戶端連線進來以後,回給客戶端訊息 conn.send(b'HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n') print(data) # conn.close() # 把上面的二進位制格式轉換成下面的字串型別,不需要再記住 是用encode 還是用decode data = str(data,encoding='utf-8') # 如何把字串型別轉換成二進位制型別 # b1=bytes(data,encoding='utf-8') position=data.split('\r\n')[0].split(' ')[1] if '/index' == position: with open('index.html','rb') as f: da=f.read() conn.send(da) else: conn.send(b'404') conn.close()
index.html(同級目錄下即可)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>h1</h1> <h2>h2</h2> <img src="http://img4.imgtn.bdimg.com/it/u=1565006133,780611353&fm=26&gp=0.jpg"> </body> </html>