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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章