前言
最近要搞一個比賽,技術大神說要用python作為后端,并且采用django框架,這讓我完全不懂的人很尷尬呀,所以趕快自學了一下,也用django搭建了自己的一個博客網站,但是功能都還不完善,大家可以幫忙提下意見。
我的博客
Django介紹
Django是一個高級的Python Web框架,它鼓勵快速開發和簡潔,務實的設計。
由經驗豐富的開發人員構建,它負責Web開發的許多麻煩,因此您可以專注于編寫應用程序,而無需重新創建輪子。它是免費的和開源的。
Django官方文檔
安裝
請確保已經正確安裝了python和pip。使用pip安裝django:
pip install django
希望你能在命令行看到這句話:
Installing collected packages: djang
Successfully installed django-1.11.2
然后在命令行輸入:
python -m django version
就可以看到版本號啦
開始第一個例子
-
創建我們的工程目錄,一行命令就夠了:
django-admin startproject mysite
然后我們的目錄結構會是這樣:
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
第一個mysite是根目錄,叫什么無關緊要。
里面的manage.py是命令行的工具,能夠讓你管理這個項目。
然后是mysite/目錄,這是一個python包目錄。
-
運行服務
在第一個mysite目錄下,輸入:
python manage.py runserver
然后在瀏覽器輸入:http://127.0.0.1:8000/
然后你會看到It worked!等文字,說明已經部署好了。
-
創建一個Polls(民意調查)應用
還是在當前目錄:
python manage.py startapp polls
然后polls/目錄如下:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
稍后我們再解釋
先創建我們的第一個網頁,在polls/views.py中加入如下代碼:
python
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
然后在當前文件夾新建一個python文件:urls.py,復制代碼:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
然后在mysite/urls.py中,覆蓋原有代碼:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
最后再次啟動服務:
python manage.py runserver
在瀏覽器輸入:localhost:8000/polls/ 就可以訪問到剛剛編寫的網頁了。
分析代碼
我們從下往上進行分析,首先在瀏覽器輸入了localhost:8000/polls/,那么django就會幫你在mysite/urls.py中的urlpattern列表中尋找匹配polls/的那一項,我們可以看到,里面有兩項:
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
url()參數:
- 第一個參數是網頁中的url的正則表達式,用來匹配你輸入的網址。
- 第二個是匹配之后要調用的方法。
include()函數是用來引用其他地方的URL配置文件,這里引用的是polls/urls.py。
我們輸入了localhost:8000/polls/,django截取的就是polls/,所以很明顯很夠匹配到第一個url(),所以會進入polls/urls.py中繼續匹配。
我們打開polls/urls.py文件:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
由于剛剛在mysite/url.py文件中進行了匹配,所以前面的polls/被消耗掉了,這里就沒有字符串了,所以第一個^$就是代表的空串,匹配成功,所以會調用views.index方法。
接下來我們看看views文件:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
可以看到有個方法叫index,且傳入了一個request參數。返回的是HttpResponse對象,這就是輸出到我們頁面的內容啦。
所以我們再把思路理清一下:
- 首先根據用戶輸入的地址,找到mysite/url.py中匹配的url()
- 然后調用匹配的方法,也就是url()的第二個參數(這里是polls/views.py中的方法)
- 再由方法生成我們看到的html頁面。
所以我們寫一個html頁面話,首先要在views.py中寫邏輯,然后在urls.py中配置views.py中的方法。
后記
這就是Django的第一個程序了,希望能夠在接下來的幾天把官方文檔的例子都給大家講講,插入一些自己的心得體會。
入門例子2