1. 程式人生 > >Django-檢視&網址

Django-檢視&網址

前言

Django第一篇簡單的介紹了環境搭建與建立Django專案的兩種方式,以及如何啟動服務,在前端訪問HelloWorld地址,這篇內容首先學習一下Django專案中的各個模組的用途及Django檢視和網址的關係,最後我們再簡單的開發一個網頁

模組詳解

我們仍然使用上一篇文章中建立的專案,目錄結構如下

django_first:這個目錄最上層位專案根目錄,同名的二級目錄是建立專案時自動生成的(django-admin.exe startproject django_first)

app_first:建立app時自動生成的目錄(python manage.py satrtapp app_first),一個django專案可以包含多個app

migrations:這個目錄同樣是在建立app時自動生成的,以後存放和資料庫相關的檔案

setting.py:整個專案的配置檔案,包含了app的配置,模板的配置,資料庫的配置等等全部在這個檔案中

urls.py:URL配置表文件,主要是將URL對映到應用程式上。當用戶請求某個URL時,django會根據這個資料夾中的對映關係指向某個目標物件(簡單的說就像當你呼叫某一個函式時,它可以根據你的引數去找這個函式,他關聯了views中的某一個函式)該物件可以是某個應用中的urls.py檔案,也可以是某個具體的檢視函式。在django中,這個檔案也被稱為URLconf,這是django非常強大的一個特性。

wsgi.py:這個檔案據說是專案上線時使用的,目前用不到(資料:WSGI是 Web Server Gateway Interface縮寫,它是python所選擇的伺服器和應用標準,django也會使用。wsgi.py定義了我們所建立的專案都是WSGI應用)

admin.py:專案的後臺,只需要簡單的新增一些程式碼即可擁有一個管理後臺

apps.py:儲存對應app的配置資訊

models.py:與資料庫操作相關,存入或讀取資料時時用到這個,當然用不到資料庫的時候你可以不使用

tests.py:測試專案的檔案

views.py:處理使用者傳送的請求,從urls.py中對應過來,通過渲染templetes中的網頁可以將內容顯示

以上就是所有模組的主要功能,要想深入理解我覺得還要經過長時間的實踐,很多理論的東西真的不 是一天兩天就能理解的,所以我們目前只需要大概都是用來做什麼即可

檢視

故名思意,我覺得這裡的檢視就是訪問url時,展示的內容或者一個url的功能,views.py就是儲存了一些功能函式,如果你接觸過QT,那麼就很類似訊號與槽的機制。接下來我們再簡單的寫一個案例-實現一個簡單的計算器

views.py中寫入如下程式碼

from django.shortcuts import render, HttpResponse

# Create your views here.
def hello_world(request):
    return HttpResponse("hello world")

def add(request):
    a = request.GET["a"]
    b = request.GET["b"]
    result = int(a) + int(b)
    return HttpResponse("{} + {} = {}".format(str(a), str(b), str(result)))

def sub(request):
    a = request.GET["a"]
    b = request.GET["b"]
    result = int(a) - int(b)
    return HttpResponse("{} - {} = {}".format(str(a), str(b), str(result)))

def mult(request):
    a = request.GET["a"]
    b = request.GET["b"]
    result = int(a) * int(b)
    return HttpResponse("{} * {} = {}".format(str(a), str(b), str(result)))

def divi(request):
    a = request.GET["a"]
    b = request.GET["b"]
    result = int(a) / int(b)
    return HttpResponse("{} / {} = {}".format(str(a), str(b), str(result)))

網址

網址就是我們瀏覽器中輸入的一串字串,當訪問某一個字串時,瀏覽器會顯示相應的內容,我們再urls.py中加入如下程式碼,使其與檢視關聯起來

"""django_first URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path

from app_first import views


urlpatterns = [
    path('admin/', admin.site.urls),
    path("helloworld/", views.hello_world, name="hw"),

    path("add/", views.add, name="add"),
    path("sub/", views.sub, name="sub"),
    path("mult/", views.mult, name="mult"),
    path("divi/", views.divi, name="divi")
]

接下來我們啟動服務,然後瀏覽器中輸入地址 127.0.0.1:8000/計算方法名稱name/?數字1&數字2, 如:http://127.0.0.1:8000/add/?a=1&b=2, 你會看到瀏覽器返回的資料

總結

1. 先簡單瞭解Django專案中每一個模組的用途即可

2. views與urls的關係,能夠把這兩個檔案中的函式與地址關聯起來

3. 啟動服務的命令及地址訪問的方式,如果你對這個地址有疑問,可以再瞭解一下get請求和post請求,為後面內容打一下