day16-django框架初識

day16 2018-08-05

Django框架 

以前的內容:
    - Python基礎
    - 前端部分

講課內容: 

1. web框架的本質(瞭解就行)
    用戶的瀏覽器(socket客戶端) 和 網站的服務器(socket服務端)之間
    
    socket
    
    HTTP協議:
        1. 請求(request)
            
        2. 響應(response)
    
    web框架本質 
        0. socket收發消息
            
        1. 訪問不一樣的URL返回不一樣的頁面
            用戶訪問的具體路徑 --> 執行不一樣的函數 --> 返回不一樣的結果
        2. 不一樣用戶訪問相同的URL返回不一樣的頁面內容
            字符串的替換
            
    Web框架的本質三大部分:
        a. 收發socket消息      web服務器 
        
                               web應用程序
        
        b. 根據不一樣的請求執行不一樣的函數返回不一樣的內容
        c. 字符串替換
        
        
        Django開發階段使用    wsgiref 模塊來處理socket消息
        
        Django部署到線上使用  uWsgi/gunicorn 模塊來處理socket消息
        
        
        Python中 web服務器程序和Web應用程序之間傳遞消息:
            WSGI協議
            
        
        
        
    Python裏面Web框架的分類:
        1. 本身實現b和c,使用第三方的a:
            Django框架
        2. 本身實現b,使用第三方的a和c:
            Flask
        3. 本身實現a\b\c:
            Tornado

2. django安裝和介紹 (本身走一遍就OK)
    1. Django介紹
        版本:1.8.3   1.11.x    2.x
    2. 安裝
        pip3 install django==1.11.11
        
        pip3 list 查看當前Python解釋器安裝了哪些第三方包
        
        pip3 install django==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple
        
        pip3 uninstall django
    3. 經常使用命令
        1. 建立Django項目
            1. 命令行建立
                django-admin startproject s21django
                在當前目錄下建立一個名爲 s21django 的Django項目
            2. PyCharm建立
                見羣內截圖
            3. 啓動Django項目
                1. PyCharm裏面啓動:
                    點綠色的小三角
                2. 命令行啓動
                    1. 切換到項目目錄下!
                    2. python manage.py runserver
                       python manage.py runserver 127.0.0.1:8090
                       python manage.py runserver 8091
                
            4. 建立APP
                1. 在PyCharm建立
                2. 在命令行建立
                    1. 切換到項目目錄下!
                    2. python manage.py startapp app名字
                    3. 在settings.py裏面註冊你新建立的那個app
                    
            5. Django項目使用靜態文件的配置
                1. 在項目目錄下新建一個保存靜態文件的文件夾
                2. 告訴Django你去我上面新建的路徑去找靜態文件
                    settings.py中 加上相應的配置項:
                        # 靜態文件存放的路徑別名,我在HTML文件中使用的那個名字
                        STATIC_URL = '/static/'
                        # 靜態文件實際保存的目錄是哪一些
                        STATICFILES_DIRS = [
                            os.path.join(BASE_DIR, 'static')
                        ]
                3. 在HTML頁面中使用剛纔配置的靜態文件
                    /static/...  來引用

3. MVC和MTV (瞭解便可)
    1. MVC   --> Model  View        Control
    2. MTV   --> Model  Template    views

4. 基本路由系統 (urls.py)
    1. 路由是一個有順序的列表,從上到下去匹配
    2. 路由的路徑是根據正則表達式來匹配的

5. 基本視圖函數(views.py)
    1. 基礎必會三件套
        from django.shortcuts import HttpResponse, render
        1. HttpResponse('字符串')
        2. render(request, 'xx.html')
        3. redirect

--- ↑ Django基礎部分 -----

6. 基本模板引擎(templates/xx.html) 
    1. render(request, 'xx.html', {"k": "v"})
    2. 經常使用語法:
        1. {{ 變量名 }}
        2. {{ 變量名.key }}
        
        3. for循環
            {% for x in xx %}
                {{x}}
            {% endfor %}
        4. if判斷
            {% if 條件 %}
                ...
            {% else %}
                ...
            {% endif %}


7. ORM(單表) 
    1. 用pymysql鏈接MySQL數據庫查詢數據
        1. import pymysql
        2. 創建鏈接
        3. 獲取光標
        4. 執行SQL語句
        5. 獲取數據
        6. 關閉光標
        7. 關閉鏈接
    2. 使用pymysql鏈接數據庫缺點:
        1. 麻煩
        2. 本身寫SQL語句!!!
    3. 使用ORM工具鏈接數據庫
        - 優勢:
            1. 不用本身寫SQL語句!!!
        - 缺點:
            1. 執行效率不高
    4. ORM是個啥?
        1. 對象關係映射
            
            類                       數據表
            屬性                     字段
            對象                     數據行
        
        2. Django中如何使用ORM
            1. 告訴Django鏈接哪一個MySQL數據庫(settings.py)
            2. 告訴Django用pymysql鏈接MySQL數據庫 (默認用的是MySQLDB)
            3. 去app/models.py裏面建立類
            4. 讓Django去數據庫幫我建立類對應的數據表
                1. python manage.py makemigrations  --> 將models.py的改動記錄在小本本上
                2. python manage.py migrate         --> 將變動記錄翻譯成SQL語句,去數據庫執行
                
        3. ORM的使用
            1. 操做數據表
            2. 操做數據行
            
    5. ORM單表的增刪改查
        1. 查詢
            models.Publisher.objects.all()               --> 查詢全部的出版社數據
            models.Publisher.objects.get(id=1)           --> 查詢id=1的那個出版社
        2. 增長
            models.Publisher.objects.create(name='xx')   --> 建立一個名爲xx的出版社
        3. 刪除
            models.Publisher.objects.get(id=2).delete()  --> 刪除id=2的那個出版社
        4. 編輯
            obj = models.Publisher.objects.get(id=2)     --> 找到要編輯的對象
            obj.name = "新值"                             --> 修改
            obj.save()                                   --> 將修改同步到數據庫
            
            
8. request相關的知識點:
    1. request.method  --> 獲取用戶請求的方法
        - GET          --> 表示用戶向我要一個頁面這種操做
        - POST         --> 表示用戶向我發送一些數據
    2. request獲取URL中的參數
        /xx/?name=alex&age=9000
        request.GET                        --> 大字典
            - request.GET['name']          --> 不推薦
            - request.GET.get("name")      --> 推薦
    3. request.POST                        --> 一個大字典,存的是用戶post發過來的數據
        1. request.POST['key']             --> 不推薦
        2. request.POST.get('key', '默認值')
        
作人戾氣不要過重!!!
    
                
        
        




練習題: 

    1. 什麼是wsgi? 

    2. mvc和mtv的區別以及django屬於哪種? 

    3. django常見命令 

    4. 如何經過GET和POST向後臺傳參 

    5. django中如何獲取POST和GET傳入的參數 

    6. 模板渲染時如何獲取列表或字典的元素(根據索引)? 

    7. 什麼是ORM? 

    8. 建立django程序時須要注意的配置有哪些? 

    9. 請寫出流程:建立一張表並對其進行增刪改查 







做業:主機管理【01】:用戶管理 

    1. 基於django建立表: 

        用戶表:ID、用戶名、密碼 

    2. 用戶登陸(md5加密) 

    3. 用戶管理:增刪改查 

    4. 套用BootStrap樣式 
課上筆記

 


做業:
1.練習題
2.做業:主機管理 01:用戶管理 1234 注意加密
02主機管理
03分組



簡易版的socketserver
\r\n換行


http工做原理
經常使用get、post

http狀態碼:

記得字符串轉成字節類型
替換後記得賦給新的變量
例子:獲取;函數版,靜態獲取,動態獲取

小結:
web框架本質
web服務器:接收消息
web應用程序:真正幹活,處理數據

django開發階段使用--wsgiref模塊來處理socket消息
Django部署到線上使用  uWsgi/gunicorn 模塊來處理socket消息
python中 wsgi協議(web服務器與web應用程序之間傳遞消息)


安裝django
templates模板
運行:要運行項目,進入項目文件夾,點擊上方的小三角
mysite總項目

項目目錄下:切換到python manage.py runserver
建立app:python manage.py startapp app名字
三件套

from django.shortcuts import HttpResponse, render
1. HttpResponse('字符串')
2. render(request, 'xx.html')
3. redirecthtml



讓用戶本身去跳轉,建立後的界面
static靜態文件夾


鏈接數據庫4步!
默認settings修改
兩條執行命令
1. python manage.py makemigrations --> 將models.py的改動記錄在小本本上
2. python manage.py migrate --> 將變動記錄翻譯成SQL語句,去數據庫執行
orm的使用:
操做數據表
操做數據行
圖書管理系統例子。出版社列表(查詢、新增、刪除、編輯)。
編輯:跳轉到編輯界面,提交後顯示修改後的內容
1.獲取用戶要編輯的出版社的id
2.用id去數據庫中找到這條記錄
3.在頁面上展現原來的出版社名字

obj = models.Publisher.objects.get(id=2) --> 找到要編輯的對象
obj.name = "新值" --> 修改
obj.save() --> 將修改同步到數據庫前端

urls---views----html
相關文章
相關標籤/搜索