1. 程式人生 > >反向教學系列之——Django入門(一)【不需知道web框架】

反向教學系列之——Django入門(一)【不需知道web框架】

Django 教程 反向教學 一派胡言

用這東西最終是建網站的,或者是更一般意義的服務器。服務器麽,就是如果用別的電腦(“客戶機”)給它發請求,它會返回一些東西——如果給隨便某個機器發信息,它自然未必理你。要想某機器回應你,得滿足這些條件——


  • 它不處在關機狀態

  • 它能收到你的信息,你也能收到它的信息

  • 它正在運行服務程序

  • 它運行的程序知道怎麽回應你的請求


  第一點即開機,第二點是聯網(但這裏有點復雜),第三點和第四點要求一個程序,說白了就一 xxx.py,要求能夠接收到請求,並且一般返回一個包含html格式的字符串(不一定必須有一個對應的html文件)。而向瀏覽器地址欄輸入一條地址,就是一種(最普遍的)請求。

  這裏介紹的第一個Django功能,就是只需給出地址和對應html,即可得到完整服務程序。但是,作為框架,自然不會簡單到只要寫這倆,而是讓你在一個普通(故而略微復雜)的工程(一套文件)中,把你需要的東西寫在某些關鍵位置。作為demo(演示),第一個例子是,僅請求服務器位置,返回 hello,步驟如下:


1. 安裝Django —— pip install Django 並將其bin目錄添加至環境變量


2. 建立一個名為Hello的項目 —— 找一個地方打開命令行,django-admin.py startproject Hello (此命令創建一個文件夾,包含固定內容)


3. 在最裏層打開urls.py(編輯模式),在最上方加入如下代碼(多行註釋不重要):

from django.http import HttpResponse
def hello(request):
    return HttpResponse("<h1>Hello</h1>")    # 收到請求時除了返回html,還可以做點別的,故把這些操作放進了函數


4. 把自帶的這一行: (位於列表urlpatterns中,是一個元素)

path('admin/', admin.site.urls),

改成這個:

url(r'^$', hello),    # ^$是對應空行的正則表達式,hello是觸發時要調用的函數

【然後】再把這個:

from django.urls import path

改成這個:

from django.conf.urls import url


5. 保存好修改,啟動服務程序 —— 在工程文件的第一層有個manage.py,但是為了提供多個功能,它被安排為不能直接打開。在此處打開命令行,python manage.py runserver 回車


6. 打開隨便某個瀏覽器,輸入“網址” 127.0.0.1 回車,如果看到Hello,那麽說明起作用了……


  第一篇完了。

(2018-3-5 於地球)

反向教學系列之——Django入門(一)【不需知道web框架】