日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超级课表

發布時間:2024/3/13 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超级课表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目整體介紹

項目功能:

  • 注冊用戶
    • 注冊用戶需要提供學校,專業,姓名
  • 登錄用戶
    • 登錄用戶需要提供之前注冊的學校,專業,姓名
  • 查詢課表
    • 查詢課表需要輸入學校,專業,班級(班級中包括了年級,例:151就是15級1班)

項目模塊:

  • 1.HTTP服務器框架
  • 2.業務實現
    • 1.爬學校的網站
    • 2.數據庫操作
    • 3.頁面制作

一.多線程HTTP服務器框架

1.1 讀取請求并解析

1.1.1 解析首行(從socket中讀取到數據按空格且切分)

  • 解析方法:切分出來的第一部分就是方法
  • 解析出URL
  • 解析URL中的path
  • 解析出query_string

1.1.2 解析heade

  • 解析出Content_Length
  • 解析出Content_Type

1.1.3 解析header

  • 請求都是表單形式所以按照表單格式解析

1.2 計算請求計算響應并寫回客戶端

1.2.1 處理靜態頁面

寫一個HTML文

1.2.2 處理動態頁面

根據頁面輸入參數不同返回不同頁面使用了CGI技術
CGI技術(通用網關接口,一種協議,一種標準)
CGI技術功能: 讓HTTP服務器的底層框架和上層應用解耦合
CGI技術優點:對編程語言的要求低(只要可以訪問標準輸入輸出就可以(SQL語言不能訪問標準輸入輸出))
CGI技術缺點:進程的頻繁創建銷毀效率低(進程池,FastCGI)

  • 服務器創建子進程
  • 子進程進行程序替換(替換為url_path指定的可執行程序即 CGI程序)
    • CGI程序:根據業務的具體需要,獲取到用戶輸入的參數并進行動態頁面的計算
    • 子進程是通過匿名管道+環境變量獲取到用戶輸入的參數
    • 子進程進行重定向(把標準輸入輸出匿名管道的讀端)
    • 子進程通過匿名管道(匿名管道的寫端)把計算得到的動態HTML寫會父進程
  • 父進程拿到子進程結果后拼裝出一個HTTP響應
  • 把響應寫回socket中

二.業務實現

2.1 爬取有用信息

2.1.1借助libcurl第三方庫實現獲取網頁的功能

  • 輸入目標是URL
  • 輸出結果是html
    使用

  • 1.初始化句柄(curl_easy_init())

  • 2.設置響應如何處理
  • 3.發送請求
  • 4.清理對象
    2.2.2解析html文件

  • 解析出HTML中需要的專業,班級,課表

  • 將解析出來的結果寫進數據庫之中的專業,班級寫入學校表
  • 將解析出來的課表寫入課表中

2.2數據庫操作

2.2.1 注冊實現

  • 獲取到用戶定義的參數
  • 解析獲取到的參數
  • 將獲取到的參數插入數據庫之中

2.2.2登錄實現

  • 獲取到參數(方法,query_string,body)
  • 獲取到Content_Length,再從標準輸入中讀取body
  • 解析讀取到的數據
  • 將讀取到的數據拼裝到查詢SQL語句中
  • 執行查詢語句對學校表中的數據進行查找,
    • 找到了就跳轉至搜索頁面
    • 找不到就跳轉至注冊頁面

2.2.3 查詢實現

  • 獲取到參數(方法,query_string,body)
  • 獲取到Content_Length,再從標準輸入中讀取body
  • 解析讀取到的數據
  • 將讀取到的數據拼裝到查詢SQL語句中
  • 執行查詢語句對課表中的數據進行查找,
    • 找到了就講課表打印出來
    • 找不到就提示用戶占時沒有該課表

總結

以上是生活随笔為你收集整理的超级课表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。