Django的初識

【背景】

1 確保安裝了pip python包的管理工具

2 確保你的python環境是3.x(因爲django版本1.8以上需要python 3支持了)

    如果你是centos用戶或者python版本不是python 3 請使用pyenv工具實現多版本python版本吧





【安裝】

pip install django


【驗證】

可以正常import django模塊

wKiom1dBkL2z2tyZAAA1QS1QumA181.png




【使用django搭建一個簡單的項目】


step1:創建一個項目

使用管理工具django-admin.py命令創建一個項目firstproject

django-admin.py startproject firstproject


結果:

wKioL1dBkvXyoLYiAAA_x9ypmfE339.png

目錄說明:

  • firstproject: 項目的容器。

  • manage.py: 一個實用的命令行工具,可讓你以各種方式與該 Django 項目進行交互。

  • firstproject/__init__.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。

  • firstproject/settings.py: 該 Django 項目的設置/配置。

  • firstproject/urls.py: 該 Django 項目的 URL 聲明; 一份由 Django 驅動的網站"目錄"。

  • firstproject/wsgi.py: 一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目。



step2:測試並啓動程序提供web訪問

cd firstproject/
python manage.py runserver 0.0.0.0:80

注意: 如果沒有指定80端口,默認是8000端口


結果:

wKioL1dBlDPguBsgAABgzBuVRWs377.png當然看到提示:

1 你還沒有在這個項目下面建立app應用

2 你也沒有配置url



set3 在這個firstproject項目建立第一個應用app(blog)

python manage.py startapp blog


默認生成了blog這個目錄,目錄下面的文件介紹

__init__.py python包的標識

admin.py   

apps.py

migrations  數據庫遷移相關暫時可以忽略

models.py  數據庫模型建表等用途,暫時可以忽略

tests.py    

views.py    views視圖,暫時可以忽略



每個文件下,都有默認的內容! 這就是django把很多都是都集成了的原因!

wKiom1dBlHLjAcTwAABXbDfaUqk630.png



step4: 將新建的應用加入django管理當中,添加到setting配置文件中,讓django能夠識別找到

vim firstproject/settings.py 


# Application definition


INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'blog',

]


注意:新建的 app 如果不加到 INSTALL_APPS 中的話, django 就不能自動找到app中的模板文件(app-name/templates/下的文件)和靜態文件(app-name/static/中的文件) 


step5:編輯自定義視圖函數

你應考慮你訪問一個網站 https://www.douban.com/photos/album/1628799196/

django內部是如何處理photos/album/1628799196/這些url呢?


我們開始我們簡答的views修改和urls定義:


編輯blog這個app目錄下的views.py文件:


from django.http import HttpResponse


def index(request):

    return HttpResponse('this is my blog')



導入入HttpResponse,它是用來向網頁返回內容的,就像Python中的 print 一樣,只不過 HttpResponse 是把內容顯示到網頁上。

我們定義了一個index()函數,第一個參數必須是 request,與網頁發來的請求有關,request 變量裏面包含getpost的內容,用戶瀏覽器,系統等信息在裏面(後面會講,先了解一下就可以)。


測試訪問: 192.168.100.10/index

wKiom1dBmO2zKniPAABlvzSKfzE268.png

原因是:django中沒有定義index這個url路徑的處理方式



step6:定義視圖函數相關的URL(網址) (即規定 訪問什麼網址對應什麼內容)

編輯項目下的urls管理文件      vim firstproject/urls.py,  將剛纔需要處理的index函數和/index路徑對應起來! 下面admin/是系統默認的, 我們添加的那句意思是路徑index/開頭的的,轉發到blog下面的views文件下面的index函數(views.index這是python的表示方法,你應該懂得)



from blog import views


urlpatterns = [

    url(r'^index/', views.index),

    url(r'^admin/', admin.site.urls),

]



注意: 以上這中方式是函數式的添加url的方法


當然實際運用當中,我們對於首頁一般處理的方式是
url(r'^$', views.index)  這樣的表示




測試:

wKioL1dBnaHTlzNHAABByLeAx8A918.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章