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請求,為後面內容打一下