91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一、1 基于socket手寫web框架

發布時間:2020-07-11 11:53:30 來源:網絡 閱讀:574 作者:a120518129 欄目:編程語言
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='db2', password='mariadb.123')
        #獲得游標,并且查詢結果數據是字典格式
        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()

請求與響應格式

'''

Request Headers

# 請求首行

# GET / HTTP/1.1\r\n

# # 請求頭

# Host: 127.0.0.1:8001\r\n

# Connection: keep-alive\r\n

# Cache-Control: max-age=0\r\n

# Upgrade-Insecure-Requests: 1\r\n

# 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\n

# Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n

# Accept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'

# # 請求體

Response

'''


index.html(同級目錄下即可)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>h2</h2>
<h3>h3</h3>
<img src="http://img4.imgtn.bdimg.com/it/u=1565006133,780611353&fm=26&gp=0.jpg">
</body>
</html>



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霸州市| 双峰县| 新绛县| 阿合奇县| 万山特区| 开平市| 金川县| 荆州市| 宁津县| 抚宁县| 犍为县| 海林市| 临朐县| 拉萨市| 霍邱县| 大新县| 错那县| 绵阳市| 镇原县| 临潭县| 浑源县| 乌海市| 繁昌县| 济阳县| 黑龙江省| 怀集县| 丁青县| 阿坝县| 古田县| 松江区| 宝山区| 彰化市| 澄迈县| 分宜县| 杭锦后旗| 凤冈县| 建平县| 临泽县| 庆元县| 新田县| 大关县|