天天看點

Django:牛刀小試

牛刀小試

  • 簡談Django
  • 搭建開發環境
  • 做一個簡單的部落格網站

寫在開始之前:

要求:python基礎、HTML基礎、浏覽器上網的基本原理

以下環境為:windows10專業版 64位 、Django1.11.1  、python2.79

官方介紹:

Django是一個進階的Web架構,鼓勵快速開發和簡潔,有着實用的設計。

由經驗豐富的開發人員建構,解決了大部分Web開發的麻煩,是以使用Django可以專注于編寫自己所需要的應用程式,而不需要重新建立輪子。

Django是免費的和開放源代碼的。

1.進入Django官方網站 https://www.djangoproject.com/ 點選  DOWNLOAD  進入  DOWNLOAD  頁面

Django:牛刀小試

2.在 DOWNLOAD 頁面點選  the FAQ,了解 Django不同版本所支援的python版本

Django:牛刀小試

 根據 the FAQ 頁面的内容決定需要安裝的對應的 Django 和 python 的版本

Django:牛刀小試

3.安裝 python ,進入python 官方網站 https://www.python.org/,點選DOWNLOAD,下載下傳所需要的版本

Django:牛刀小試

4.安裝Django

方法一(pip安裝):在windows DOS界面下,運作 pip install Django==版本

                              pip install Django==1.11.1

Django:牛刀小試

方法二(源碼安裝):在官網DOWNLOAD頁面下載下傳tar.gz包然後解壓

Django:牛刀小試

                                在DOS界面下進入解壓後的源碼包的目錄,運作 python setup.py install

Django:牛刀小試

方法三(git下載下傳):git clone https://github.com/django/django.git

5.檢視Django是否安裝成功

DOS界面下 運作python -m django --version

Django:牛刀小試

或者進入python IDE界面下導入django子產品

DOS界面下運作python

                           import django

Django:牛刀小試

6.編譯器,pycharm 的安裝,進入pycharm的官網的 DOWNLOAD 頁面下載下傳

Django:牛刀小試

1.建立項目,DOS界面下運作 django-admin startproject 項目名稱,此時在該目錄下将多一個以項目名稱為名的檔案夾

Django:牛刀小試

2.切換之myblog目錄下,運作python manage.py檢視指令幫助

Django:牛刀小試
Django:牛刀小試

3.在myblog目錄下,運作 python manage.py runserver 啟動 django 服務

Django:牛刀小試

4.打開浏覽器輸入網址 http://127.0.0.1:8000/

服務啟動成功将顯示以下界面

Django:牛刀小試

5.修改端口号

Django:牛刀小試
Django:牛刀小試

6.目錄檔案簡介

├── manage.py  與項目進行互動的指令行工具集的入口,即項目管理器。
              └── myblog
    ├── __init__.py   python中聲明子產品的檔案
    ├── settings.py   該Django項目的設定與配置檔案
    ├── urls.py       url配置檔案  
    └── wsgi.py       python伺服器網關接口,python應用與web伺服器之間的接口            

7.建立應用

建立步驟:進入項目中manage.py的同級目錄

                   運作 python manage.py startapp blog

                   添加應用名到 setting.py 中的 INSTALLED_APPS 裡

Django:牛刀小試
Django:牛刀小試

8.應用目錄介紹

Django:牛刀小試

建立第一個頁面(響應)

編輯views.py

每個響應對應一個函數,函數必須傳回一個響應,函數必須存在一個參數,一般約定為request

每個響應函數對應一個URL

Django:牛刀小試

編輯URL(第一種URL配置)

每個URL都以URL的函數形式寫出來

URL函數放在urlpatterns清單中

URL函數三個參數:URL(正則)、對應方法、名稱

Django:牛刀小試

DOS界面下啟動服務

Django:牛刀小試

 打開浏覽器輸入 127.0.0.1:8000/index

Django:牛刀小試

* 編輯URL(第二種URL配置)

包含其他URL

在根 urls.py 中引入 include 

Django:牛刀小試

在根APP目錄建立urls.py檔案,格式與根urls.py相同

Django:牛刀小試

根urls.py中urls函數第二個參數改為 include('blog.urls')

注意事項:

根 urls.py 針對APP配置的URL名稱是該APP所有url的總路徑

配置url時注意正規表達式結尾符$和/

Django:牛刀小試

打開浏覽器輸入 127.0.0.1:8000/blog

Django:牛刀小試

9.Templates

什麼是Templates?HTML檔案,使用了Django模闆語言(Django Templates Language,DTL),也可以使用第三方語言,修改setting.py中TEMPLATES中的BACKEND的值

開發第一個Templates

在APP的根目錄下建立名叫 Templates 的目錄,在該目錄下建立HTML檔案

Django:牛刀小試

 在views.py中傳回render()

Django:牛刀小試

 打開浏覽器,輸入

Django:牛刀小試

DTL的簡單使用

render()函數中支援一個dict類型參數,該字典是背景傳遞到模闆的參數,鍵為參數名

在模闆中使用 {{參數名}} 來直接使用

Django:牛刀小試
Django:牛刀小試
Django:牛刀小試

*Django查找Templates

Django按照INSTALLED_APPS中的添加順序查找Templates,不同APP下T emplates目錄下的同名html檔案會造成沖突

解決方案:在APP下的Templates目錄下建立以APP名為名稱的目錄,将HTML檔案放入新建立的目錄下,然後修改對應的相關urls檔案

Django:牛刀小試

 Models是什麼?

通常,一個Model對應資料庫的一張資料表

Django中Models以類的形式表現,它包含了一些基本字段以及資料的一些行為

在應用根目錄下建立models.py,并引入models子產品,Django已自動完成

建立類,繼承models.Model,該類即一張資料表

在類中建立字段     https://docs.djangoproject.com/en/1.10/ref/models/fields/

字段建立,字段即類裡面的屬性(變量)

attr = models.CharField(max_length=64)

Django:牛刀小試

生成資料表

指令行中進入manage.py同級目錄,執行 python manage.py makemigrations app名(可選)

再執行 python manage.py migrate

Django:牛刀小試

檢視

Django會自動在 app/migrations/ 目錄下生成移植檔案

Django:牛刀小試

執行python manage.py sqlmigrate 應用名 檔案ID     //檢視SQL語句

Django:牛刀小試

檢視并編輯db.sqlite3,使用第三方軟體sqlite expert personal(輕量級完全免費)

Django:牛刀小試

頁面呈現資料

背景步驟:編輯views.py中的import models

                   article = models.Article.objects.get(pk=1)

Django:牛刀小試

前端步驟:模闆可直接使用對象以及對象的‘.’操作

                   {{ article.title }}

Django:牛刀小試

 打開浏覽器測試

Django:牛刀小試

Admin簡介

什麼是Admin?一個Django自帶的背景管理系統

配置Admin

建立使用者(建立超級使用者) python manage.py createsuperuser

Django:牛刀小試

WEB登陸背景 127.0.0.1:8000/admin

Django:牛刀小試

 修改setting.py中的 LANGUAGE_CODE='zh_Hans' ,使背景界面以中文界面呈現

Django:牛刀小試

 配置應用

在應用下admin.py中引入自身的models子產品(或裡面的模型類)

編輯admin.py:添加admin.site.register(Article)

Django:牛刀小試

建立資料預設顯示名稱

在Artcile類下添加一個方法(在models.py中)

根據python版本選擇__str__(self)或 __unicode__(self),一般選擇__unicode__(self)

return self.title

Django:牛刀小試

完善部落格頁面

修改views.py

Django:牛刀小試

修改.html檔案

Django:牛刀小試

 測試

Django:牛刀小試

完善部落格文章頁面:編輯views.py,建立相應的html檔案,再修改應用下的urls.py

Django:牛刀小試
Django:牛刀小試
Django:牛刀小試
Django:牛刀小試

 配置Django中的超連結

template中可以用"{% url 'app_name:url_name' param %}"

再配URL

url 函數的名稱參數

根urls,寫在include()的第二個參數位置,namespace='blog'

Django:牛刀小試

應用下則寫在url()的第三個參數位置,name='article'

Django:牛刀小試

主要取決于是否使用include引用了另一個url配置檔案

修改html檔案中的a标簽

Django:牛刀小試

 完善部落格撰寫頁面

 編輯html檔案

Django:牛刀小試

 編輯views.py

Django:牛刀小試

 編輯urls.py

Django:牛刀小試

 再編輯html檔案

Django:牛刀小試

完善編輯文章頁面

Django:牛刀小試
Django:牛刀小試
Django:牛刀小試
Django:牛刀小試
Django:牛刀小試
Django:牛刀小試

 補充内容

Tempaltes過濾器

什麼是過濾器?

寫在模闆中,屬于Django模闆語言

可以修改模闆中的變量,進而顯示不同的内容

怎麼使用?

{{ value | filter }}

例子:{{ list_nums | length }}

過濾器可疊加:{{ value | filter1 | filter2 | ……  }}

Django:牛刀小試

Django shell 

什麼是Django shell?

它是一個python的互動式指令行程式,它自動引入了我們的項目環境

我們可以使用它與我們的項目進行互動

如何使用?

python manage.py shell

from blog.models import Article

Article.objects.all()

有什麼作用?

可以使用Django shell來進行一些調試工作

測試未知的方法

Django:牛刀小試

建立admin配置類

class ArticleAdmin(admin.ModelAdmin)

注冊:admin.site.register(Article,ArticleAdmin)

顯示其他字段

list_display = ('title','content','pub_time')

list_filter = ('pub_time')

list_display同時支援tuple和list

Django:牛刀小試

 編輯models.py

Django:牛刀小試

移植資料(一定要做)

python manage.py makemigrations

python manage.py migrate

python manage.py runserver

Django:牛刀小試
Django:牛刀小試
Django:牛刀小試
Django:牛刀小試
Django:牛刀小試