初識 Django

Django介紹

HTTP協議:

定義:超文本傳輸協議:規定了客戶端與服務端消息傳輸的格式

四大特性:

1.基本TCP/IP 協議做用於應用層的協議
        2.基於請求響應
        3.無狀態
        4.無鏈接

數據格式之請求:

請求首行
        請求頭(一堆k,v鍵對))
         (空格)
        請求體(post請求攜帶的數據)

數據格式之響應:

響應首行
        響應頭(一堆k,v鍵對)
         (空格)
        響應體(post請求攜帶的數據)

響應狀態碼:

1xx:服務器已經成功接收到你的數據正在處理,你能夠繼續提交數據
        2xx:請求成功 服務器已經成功接收到你的數據發送給你了
        3xx:重定向
        4xx:請求資源錯誤/不存在
        5xx:服務器錯誤

動靜態網頁

靜態網頁:
    頁面上的數據都是寫死的,萬年不變
  動態網頁:
    頁面上的數據是從後端動態獲取的
    好比後端獲取當前時間
    後端獲取數據庫數據而後傳遞給前端頁面

模板渲染

後端生成的數據直接傳遞給前端頁面使用(而且前端頁面能夠靈活的操做改數據) >>> 模板語法

模板渲染 模板語法須要依賴於第三方模塊
pip install jinja2

模板語法  jinja2支持前端直接使用相似於python的語法操做數據
    <p>{{ user_dic }}</p>
    <p>{{ user_dic.name }}</p>
    <p>{{ user_dic['password'] }}</p>
    <p>{{ user_dic.get('name') }}</p>
    {% for user in user_dict %}  <!--[{},{},{},{}]-->
        <tr>
            <td>{{ user.id }}</td>
            <td>{{ user.name }}</td>
            <td>{{ user.password }}</td>
        </tr>
    {% endfor %}


什麼是web框架?

python三大主流web框架
    Django:大而全,自帶了不少功能模塊,相似於航空母艦 (缺點:有點笨重)
    Flask:短小精悍,自帶的功能模塊特別少,大部分都是依賴於第三方模塊(小而輕)
    Tornado:異步非阻塞 主要用在處理高io 多路複用的狀況 能夠寫遊戲後端
    
a:socket
b:路由與視圖函數
c:模板渲染

Django:
    a用的別人的 wsgiref
    b本身寫的
    c本身寫的
Flask:
    a用的別人的 werkzeug
    b本身寫的
    c用的別人的 jinja2
Tornado:
    a,b,c都是本身寫的

Django安裝配置

安裝 :pip3 install django==1.11.11
1、 使用 :django-admin startproject 項目名稱
        建立app :cd 項目名稱  python3 manage.py startapp app01(子項目)

    文件目錄介紹:
        
    
        -項目名
        ----settings:全局配置信息
        ----urls:總路由,請求地址跟視圖函數的映射關係
        -應用名
        ----mingrations:數據庫遷移記錄
        ----admin.py:Django後臺管理相關
        ----models.py 數據庫表模型
        ----views 視圖函數()

        --static 存放(靜態文件、css、js、img)
        --templates : html存放
        --manage.py ---項目入口,執行一些命令
        
2、新建目錄
    -static 存放靜態文件(css、文件) 在settings中 TEMPLATES中查看路徑存不存在
        STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
    -templates  html存放,在settings中 TEMPLATES中查看路徑存不存在 
        
3、配置settings.py
    (1)每新建一個app必須在配置文件中註冊:在 INSTALLED_APPS 下添加 'app01.apps.App01Config'
    (2)TEMPLATES  中'DIRS':[
            os.path.join(BASE_DIR, 'templates')
            ]
    (3)在配置文件最後加 :STATICFILES_DIRS=[
            os.path.join(BASE_DIR,'static'),
          ]
    (4)要把 MIDDLEWARE 中(註釋掉)...CsrfViewMiddleware
4、數據庫建表遷移指令
    python3 manage.py makemigrations
    python3 manage.py migrate
5、執行項目:
    python3 manage.py runserver 127.0.0.1:8001

django小白必會三板斧

引用:

from django.shortcuts import render,HttpResponse,redirect

⑴ HttpResponse : 返回字符串

⑵ redirect :重定向

⑶ render : 返回一個html頁面

render 兩種給前端頁面傳值的方式
def reg(request):
        user_dict = {'name':'jason','password':'123'}
        return render(request,'reg.html',{'user_dict':user_dict})

    def reg(request):
        user_dict = {'name':'jason','password':'123'}
        return render(request,'reg.html',locals())

相關文章
相關標籤/搜索