1 web 應(yīng)用 2 c/s 和bs架構(gòu) 3 python中的web框架 a :socket b:路由跟視圖函數(shù)匹配關(guān)系 c:模板渲染 django: a: 用了別人的wsgiref b:自己寫的 c:自己寫的 flask: a:用了別人的 b:自己寫的 c:用了別人的:jinja2 tornado: a 自己寫的 b:自己寫的 c:自己寫的 4 http協(xié)議: -特點(diǎn):1 基于TCP/IP協(xié)議之上的應(yīng)用層協(xié)議 2 基于請求-響應(yīng)模式 3 無狀態(tài)保存 4 短連接 -請求格式: -響應(yīng)格式: 5 django的安裝和簡單使用 -安裝:1 pip3 install django==1.11.9 2 pycharm 下安裝,選擇版本號 -使用: 命令創(chuàng)建項(xiàng)目:django-admin startproject 項(xiàng)目名字 創(chuàng)建app:python3 manage.py startapp app01 -文件目錄介紹: -manage.py---項(xiàng)目入口,執(zhí)行一些命令 -項(xiàng)目名 -settings:全局配置信息 -urls:總路由,請求地址跟視圖函數(shù)的映射關(guān)系 -app名字 -migrations:數(shù)據(jù)庫遷移的記錄 -models.py 數(shù)據(jù)庫表模型 -views 視圖函數(shù) -運(yùn)行項(xiàng)目: pytyon3 manage.py runserver 127.0.0.1:8001 6 補(bǔ)充: 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鏈接數(shù)據(jù)庫 #拿到數(shù)據(jù)庫鏈接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='db2', password='mariadb.123') #獲得游標(biāo),并且查詢結(jié)果數(shù)據(jù)是字典格式 cur=conn.cursor(pymysql.cursors.DictCursor) #執(zhí)行sql cur.execute('select * from user') #獲取全部查詢結(jié)果 dic=cur.fetchall() 3 以后寫項(xiàng)目: 1 不要用中文 2 計(jì)算機(jī)名不能用中文 3 一個(gè)工程,就是一個(gè)項(xiàng)目 7 作業(yè): 1 上課講的內(nèi)容整理到博客上 2 django下載下來,跑起來 3 單表的圖書管理系統(tǒng) 圖書的增刪改查 一個(gè)book表 id name price author publish 所有人都必須完成:查
認(rèn)識web框架:
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的拉孜網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
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) # 等客戶端連接進(jìn)來以后,回給客戶端消息 conn.send(b'HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n') print(data) # conn.close() # 把上面的二進(jìn)制格式轉(zhuǎn)換成下面的字符串類型,不需要再記住 是用encode 還是用decode data = str(data,encoding='utf-8') # 如何把字符串類型轉(zhuǎn)換成二進(jìn)制類型 # 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()
請求與響應(yīng)格式
'''
Request Headers
# 請求首行
# GET / HTTP/1.1\r
# # 請求頭
# Host: 127.0.0.1:8001\r
# Connection: keep-alive\r
# Cache-Control: max-age=0\r
# Upgrade-Insecure-Requests: 1\r
# User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36\r
# Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r
# Accept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'
# # 請求體
Response
'''
index.html(同級目錄下即可)
Title h2
h3