Django基礎(一)

Django

 

 

django是能夠自動重啓的(重啓機制:內部監測到文件修改就會重啓),可是有時候反應速度較慢;也有可能在你代碼沒寫完時就重啓會報錯html

基礎

HTTP協議:

超文本傳輸協議前端

1. 四大特性

 1. 基於tcp/ip協議之上的應用層
2. 基於請求相應的(被動響應)
3. 無狀態(不保存用戶狀態){因無狀態,cookie,session,token....}
4. 無鏈接(長鏈接 websocket)

1. 數據格式

1. 請求格式
   請求行 (請求方式,版本協議)

請求頭 (一大堆k:v鍵值對)相似於開路先鋒,提早告知對方一些必要信息

/r/n

請求體(真正的數據,發post請求是纔有,若是是get請求不會有)
1. 響應格式
   響應行

響應頭

/r/n

響應體

1. 響應狀態碼

1. 用特定的數字表示一些意思
  1xx: 服務端已經成功接收到數據,正在處理,能夠提交其餘數據

2xx: 服務端成功響應(如200,請求成功)

3xx: 重定向(當你沒有登陸,自動跳轉)

4xx:請求錯誤(404,請求資源不存在; 403,拒絕訪問,)

5xx:服務器內部錯誤(500服務器出現問題)
請求方式:

get請求python

朝人要數據(沒有請求體)web

post請求 數據庫

朝別人提交數據(用戶登陸)django

URL 統一資源定位符flask

讓人提交數據後端

簡單地wbe框架服務器

1. 手動編寫:1)socket

1. 手動處理http格式數據

2. http數據本身處理

2. 基於wsgiref模塊
  1. urls.py 只放路因爲視圖函數對應關係
  1. view.py 只放視圖函數
  3. views.py 處理後端業務邏輯的視圖函數(視圖函數不僅僅是函數
4. 規律:只要你想加功能只須要在urls.py中添加一條對應的關係再去views.py 寫一個函數視圖
3. 動靜態網頁
  1. 靜態網頁
    1. 數據是寫死了,萬年不變
  1. 動態網頁
    1. 數據是實時獲取的
        1. eg:
          1. 後端獲取當前時間展現到前端
          1. 後端獲取數據庫中的數據展現到前端  

#### 疑問: 如何將後端獲取的數據 傳遞給html頁面 後端獲取的數據 傳遞給html頁面 >>>: 模板的渲染 jinja2 pip3 install jinja2 模板語法(極其貼近python後端語法) <p>{{ user }}</p> (變量相關) <p>{{ user.name }}</p> <p>{{ user['pwd'] }}</p> <p>{{ user.get('hobby') }}</p> websocket

 {% for user_dict in user_list %}   (邏輯相關)
<tr>
<td>{{ user_dict.id }}</td>
<td>{{ user_dict.name }}</td>
<td>{{ user_dict.pwd }}</td>
</tr>
{% endfor %}

python三大主流web框架

Django

1. 優勢: 大而全,自帶功能多,相似於航空母艦
  1. 缺點:有時過於笨重

 

Flask

  1. 缺點: 小而精,自帶功能不多,相似於遊騎兵,比較依賴於第三方模塊

  1. 優勢: 第三方模塊特別多,若是將flask第三方模塊加起來徹底能夠超過Django

Tornado

異步非阻塞

 

A:socket部分
B:路由與視圖函數對應關係
C:模板語法

Django:
A用的別人的 wsgiref
B本身寫的
C本身寫的
Flask
A用的別人的 werkzeug(基於wsgiref)
B本身寫的
C用的別人的 jinja2
Tornado
三者全是本身寫的

注意事項: 1.計算機的名稱不能有中文 2.一個pycharm窗口就是一個項目 3.項目名裏面儘可能不要用中文

django版本問題 1.X 2.X 如今市面上用的比較多的仍是1.X 推薦你使用1.11.9~1.11.13

 

Django安裝:pip intsall Django(版本)

確認是否安裝成功:Django-admin

命令行式:

建立項目:

Django-admin startproject mysite

啓動項目:

python manage.py runserver

建立應用:

python manage.py startapp app01

 

一個django項目就相似因而一所大學,而app就相似於大學裏面的學院 django其實就是用來一個個應用的 一個app就至關於一塊獨立的功能 用戶功能 管理功能 django支持任意多個app

注意:

  1. 使用命令行建立項目,不會自動建立templates文件夾,只能手動建
  1. settings文件中手動寫[os.path.join(BASE_DIR, 'templates')]

pycharm建立:

可以自動建立template文件夾和路徑配置

也可以支持建立一個應用並註冊。

相關文章
相關標籤/搜索