1. 程式人生 > >Django簡介、安裝和入門

Django簡介、安裝和入門

python三大主流Web框架

Django

優點:大而全,自身攜帶的元件和功能特別特別多,類似於航空母艦

缺點:過於笨重,所需功能不多時,Django依然提供這些功能,佔據記憶體

Flask

優點:小而精 自身攜帶的元件和功能特別特別少 就類似於遊騎兵,自身功能比較少 但是第三方支援該框架的模組特別特別多

缺點:受限於第三方模組,尤其是版本更新

Tornado

優點:非同步非阻塞,天然支援高併發,甚至可以開發遊戲伺服器

Django介紹

參照 https://baike.baidu.com/item/django/61531?fr=aladdin

https://www.cnblogs.com/Dominic-Ji/articles/10982272.html

https://code.ziqiangxuetang.com/django/django-intro.html

Django是一個開源MVC(模型model,檢視view,控制器Control)模式的Web應用框架,由Python寫成。其核心元件有:

  • 用於建立模型的物件關係對映
  • 為終端使用者設計較好的管理介面
  • URL設計
  • 設計者友好的模板語言
  • 快取系統

它其實也是一個MTV的設計模式,即模型Model,檢視View和模版Template。由於控制器接受使用者輸入的部分由框架自行處理,因此,django更關注的是模型、模板和檢視,它們各自的職責是

層次 職責
模型(Model),資料存取層 處理與資料相關的所有事務:存取、驗證有效性、包含哪些方法以及資料之間的關係等
模板(Template),展示層 處理與資料展示相關的事務:頁面美化或在其他型別文件中的展示效果
檢視(View),業務邏輯層 存取模型及呼叫合適的模板等相關邏輯,是模型和模板的橋樑

Django 安裝

  • 注意事項:
    • 計算機名稱不能有中文
    • 專案檔案不能有中文
    • 一個pycharm視窗就是一個單獨的完整的專案
  • 版本選擇

推薦使用1.11.09~1.11.13版本(穩定)。

ps:如果已安裝其他版本,無須解除安裝,在安裝新版本時,會自動先解除安裝之前的版本再安裝

  • 安裝

命令列:pip3[根據python直譯器] install django=1.11.11[版本號]

測試是否安裝成功命令列:django-admin

  • 基本命令(cmd中執行)

    • 建立django 專案(背下來)

    注意:命令列建立的django專案沒有templates模板資料夾,需要手動建立,且自行在settings檔案中配置路徑

    django-admin.py startproject 專案名稱[必須是合法的python包名]
    • 啟動django專案(背下來)

    注意:必須在專案目錄下執行,runserver 後可接主機名和埠號,預設是本機地址127.0.0.1:8000

    python3[直譯器名稱] manage.py runserver [host:port]
    • 建立app(application,相當於一個個獨立的功能模組)(背下來)

    一般一個專案有多個app,通用的app也可以在多個專案中使用

    注意:必須在專案目錄下建立,建立完成後一定要去settings.py 中配置

    python3 startapp app名稱[必須是合法的python包名]
    或
    django-admin.py startapp app名稱
  • django專案檔案介紹
    • urls.py:路由檢視函式(views.py)物件關係,專案的總路由
    • views.py:檢視函式(日常程式設計全在這,重點掌握)
    • models.py:模型類(ORM)
    • templates資料夾:存放views.py中的函式渲染的html模板
    • admin.py:django後臺管理
    • settings.py:專案配置檔案,比如資料庫配置、靜態檔案的位置
    • tests.py:測試檔案

django入門必會三板斧-HttpResponse,render,redirect

HttpResponse:將字串返回給瀏覽器

# views.py
def index(request):
    # 業務邏輯程式碼
    return HttpResponse('hello, this is index code -from HttpResponse')

render:將html文件(動態頁面也可)返回給瀏覽器

注意:模板的渲染,將資料在後端按照模板語法放入html文件中對應的位置

# views.py
def index(request):
    # 業務邏輯程式碼
    # # 傳參:2個引數,第一個引數必須是request,第二引數是返回的html文件
    # return render(request, 'index.html')
    # 傳參:3個引數,第一個引數必須是request,第二引數是返回的html文件
    # 第三引數是儲存資料的字典引數,將資料填充到html文件後,再將html文件返回
    # 類似jinja2
    return render(request, 'index.html', {'name': 'lee', 'hobby': ['study', 'smoke']})

redirect:重定向,轉到指定的URL

# views.py
def index(request):
    # return redirect('/login/')  # 本地的路徑
    return redirect('https://www.luffycity.com/home')

踩過的坑:

1.程式碼修改了,重新整理頁面沒有效果

可能是同一個埠開了多個服務,django執行的是第一次啟動的服務;也有可能時瀏覽器快取問