初識將狗

1.python中3個經常使用web框架html

  有django,flask,tornado,他們都主要由下面3大元素組成:python

  a:socketweb

  b:路由跟視圖函數匹配關係數據庫

  c:模板渲染django

  幾大框架的各自特色:json

  django:a,用了別人的wsgiref  b,本身寫的  c,本身寫的flask

  flask:   a  用了別人的       b,  本身寫的        c,用了別人的jinja2服務器

  tornado:a,本身寫的       b,本身寫的       c,本身寫的網絡

2.htpp協議:app

  特色:1.基於TCP/IP協議之上的應用層協議

     2.基於請求-響應模式

     3.無狀態保存

       4.無鏈接

  #無狀態保存。HTTP協議自身不對請求和響應之間的通訊狀態進行保存。也就是說在HTTP這個級別,協議對於發送過的請求或響應都不作持久化處理。使用HTTP協議,每當有新的請求發送時,就會有對應的新響應產生。協議自己並不保留以前一切的請求或響應報文的信息。這時爲了更快地處理大量事務,確保協議的可伸縮性,而特地把HTTP協議設計成如此簡單的。但是,隨着web的不斷髮展,因無狀態而致使業務處理變得棘手的狀況增多了。好比,用戶登陸到宜家購物網站,即便他跳轉到該站的其餘頁面後,也須要能繼續保持登陸狀態。針對這個案例,網站爲了能掌握是誰送出的請求,須要保存用戶的狀態。HTTP/1.1雖然是無狀態協議,但爲了實現指望的保持狀態功能,因而引入了Cookie技術。有了Coolkie再用HTTP協議通訊,就能夠管理狀態了。

  #無鏈接

  無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並受到客戶的應答後,即斷開鏈接採用這種方式能夠節省傳輸時間。

  請求格式:請求行,請求頭,空行,請求體

  響應格式:起始行,響應頭部,空行,響應報文主體

重點:

請求:

  請求首行 get /http/1.1 \r\n

  請求頭:key:value\r\n

  請求體

響應:

  響應首行 http/1.1 200 ok \r\n

  響應頭:key:value

  響應體:html的代碼

補充:使用get請求數據時,提交方式是?name=aa這種形式

127.0.0.1:8000/book_list/?name=aa

django中json數據從POST中是取不出來的,只能從body中取出,而後反序列化

3.django的安裝與使用

  方式1:在pacharm的Terminal命令行裏輸入 pip3 install django==1.11.9           #指定版本號爲1.11.9,若是不指定版本號,則下載的是最新版

  方式2:在pacharm的Project Interpreter右側點+號,再輸入django再點Specify version能夠選擇版本號

  方式3:cmd命令行

      d:進入d盤

      cd /pb進入pb文件夾

      django-admin startproject hg(項目名)開啓新項目

      cd pb/hg進入到項目文件夾

      python3 manage.py startapp app01(app名)建立app

      python3 manage.py runserver 127.0.0.1:8000開啓項目

  使用:項目中不要有中文!

     計算機名字不要是中文

     一個工程就是一個項目

  django中app的概念:

    大學:---------------項目

        信息學院-------------------app01

        物理學院-------------------app02

    不一樣功能放在不一樣app裏,便於管理。

  建立app的方法:1在pecharm建立django項目時點More settings寫上app名字

           2在termainal裏輸入命令

            python3 manage.py startapp app01

  建立了app之後,要在settings裏進行配置

4.settings配置

4.1templates

templates文件夾

將app路徑放進配置

form提交的四種方式

1)<form action="http://127.0.0.1:8000/login/" method="post">

2)<form action="/login/" method="post">  推薦使用

3)<form aciton='' method="post">

4)<form action='login.html' method='post'>

4.2static

  在settings中要配置下靜態文件

    STATIC_URL='/static/'  通常不要改,指的是對應url中static這個模塊,而不是static文件夾

    在項目根文件夾下建立一個static文件夾,再進行添加路徑

    STATICFILES_DIRS=[

          os.path.join(BASE_DIR,‘static’),建立的文件夾路徑(能夠寫多個)

          os.path.join(BASE_DIR,‘static’)    

    ]

4.3視圖層

1)request

  request.method        前臺提交過來的請求方式

  request.POST(至關於字典)   post形式提交過來的數據(http請求報文的請求體中)

  request.POST.get('name')     推薦使用get取值(取出列表中的最後一個)

  request.POST['name']     不推薦使用,萬一有網絡延遲等問題,沒有取到值的話會崩潰

  request.POST.getlist('name')  取列表全部值

2)get與post

  get:獲取數據,頁面,攜帶數據是不重要的數據(數據量有大小限制)

  post:日後提交數據

5.APPEND_SLASH

在settings裏面能夠進行配置該參數

APPEND_SLASH=False則不會在輸入網址時自動加/ 在django中,默認是設置成True的。

APPEND_SLASH=True則會在輸入網址時自動加/

 HttpResponse返回的是普通類型的字符串

 6.MVC和MTV

django是MTV模式:

M:model    模型  負責業務對象和數據庫的關係映射(ORM)

 T:Template     模板  負責如何把頁面展現給用戶(html)

V:view     視圖  負責業務邏輯,並在適當時候調用model和template

MVC模式:

M:model   模型

V:view    視圖

C:controller  控制器:url+view

M是應用程序中用於處理應用程序數據邏輯的部分。一般模型對象負責在數據庫中存取數據。

V是應用程序中處理數據顯示的部分(就是顯示)。

C是應用程序中處理用戶交互的部分。一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。

 6.Django的生命週期

 

 7.django中數據表遷移命令

1)python3 manage.py makemigrations     記錄一下數據庫的變化

2)python3 manage.py migrate        將變化同步到數據庫中

3)新建app的命令

python3 manage.py startapp blog

相關文章
相關標籤/搜索