第一個Django小例子

前言

最近要搞一個比賽,技術大神說要用python作為后端,并且采用django框架,這讓我完全不懂的人很尷尬呀,所以趕快自學了一下,也用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

就可以看到版本號啦

開始第一個例子

  1. 創建我們的工程目錄,一行命令就夠了:

    django-admin startproject mysite

    然后我們的目錄結構會是這樣:

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py
    

    第一個mysite是根目錄,叫什么無關緊要。

    里面的manage.py是命令行的工具,能夠讓你管理這個項目。

    然后是mysite/目錄,這是一個python包目錄。

  2. 運行服務

    在第一個mysite目錄下,輸入:

    python manage.py runserver

    然后在瀏覽器輸入:http://127.0.0.1:8000/

    然后你會看到It worked!等文字,說明已經部署好了。

  3. 創建一個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對象,這就是輸出到我們頁面的內容啦。

所以我們再把思路理清一下:

  1. 首先根據用戶輸入的地址,找到mysite/url.py中匹配的url()
  2. 然后調用匹配的方法,也就是url()的第二個參數(這里是polls/views.py中的方法)
  3. 再由方法生成我們看到的html頁面。

所以我們寫一個html頁面話,首先要在views.py中寫邏輯,然后在urls.py中配置views.py中的方法。

后記

這就是Django的第一個程序了,希望能夠在接下來的幾天把官方文檔的例子都給大家講講,插入一些自己的心得體會。
入門例子2

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容