日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

框架 路由地址_Django框架的使用

發(fā)布時(shí)間:2025/4/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架 路由地址_Django框架的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Django框架的使用

一,創(chuàng)建基本項(xiàng)目

創(chuàng)建項(xiàng)目

# web是項(xiàng)目名稱或者稱為項(xiàng)目目錄django-admin startproject web?# 會(huì)在執(zhí)行命令的當(dāng)前目錄中 創(chuàng)建 web項(xiàng)目目錄web├── manage.py ? ? # 項(xiàng)目管理文件 ? 單入口文件└── web ? ? ? ? ? # 和項(xiàng)目同名的目錄/ 存放于項(xiàng)目相關(guān)的配置文件 等 ? ├── __init__.py ?# 包初始化文件 ? ├── settings.py ?# 項(xiàng)目的配置文件 ? ├── urls.py ? ? ?# 項(xiàng)目的根路由文件 ? └── wsgi.py ? ? ?# 通用網(wǎng)關(guān)接口服務(wù)文件/后期上線部署到專業(yè)的HTTP服務(wù)器時(shí)需要用到

啟動(dòng)服務(wù)

# 終端切換到 web/manage.py目錄中并執(zhí)行以下命令python3 manage.py runserver?'''(venv) MacBook-Pro:web yc$ lsmanage.py web(venv) MacBook-Pro:web yc$ python3 manage.py runserverWatching for file changes with StatReloaderPerforming system checks........December 28, 2019 - 05:55:33Django version 2.2.9, using settings 'web.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.'''

訪問服務(wù)

在瀏覽器的地址欄 訪問 url http://127.0.0.1:8000/

成功后會(huì)在瀏覽器中看到默認(rèn)頁面

二,創(chuàng)建應(yīng)用

執(zhí)行命令創(chuàng)建自定義應(yīng)用

# 在 manage.py 同級(jí)目錄下 執(zhí)行 以下命令 創(chuàng)建應(yīng)用python3 manage.py startapp home??# 應(yīng)用創(chuàng)建成功后,會(huì)在mamage.py 的同級(jí)目錄中創(chuàng)建一個(gè) 應(yīng)用文件夾web/├── db.sqlite3 ? ? ?# Django框架默認(rèn)使用數(shù)據(jù)庫文件├── home ? ? ? ? ? ?# 創(chuàng)建的自定義應(yīng)用│?? ├── __init__.py│?? ├── admin.py ? ?# django框架自帶后臺(tái)模塊配置文件│?? ├── apps.py│?? ├── migrations│?? │?? └── __init__.py│?? ├── models.py ? # 模型文件│?? ├── tests.py ? ?# 測試文件│?? └── views.py ? ?# 視圖函數(shù)文件├── manage.py ? ? # 項(xiàng)目管理文件 所以的項(xiàng)目指令都需要manage.py └── web ? ? ? ? ? # 和項(xiàng)目同名的目錄/ 存放于項(xiàng)目相關(guān)的配置文件 等 ? ├── __init__.py ?# 包初始化文件 ? ├── settings.py ?# 項(xiàng)目的配置文件 ? ├── urls.py ? ? ?# 項(xiàng)目的根路由文件 ? └── wsgi.py ? ? ?# 通用網(wǎng)關(guān)接口服務(wù)文件/后期上線部署到專業(yè)的HTTP服務(wù)器時(shí)需要用到?

定義視圖函數(shù) 輸出 Hello World

編輯 web/home/views.py文件,定義視圖函數(shù)

from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.?# 定義 視圖函數(shù)。輸出hello worlddef hello(request): ? ?return HttpResponse('Hello World!...')?

給視圖函數(shù)定義訪問路由

在 web/home/ 目錄中 創(chuàng)建 urls.py文件. 并定義路由

# web/home/urls.pyfrom django.urls import pathfrom . import views?urlpatterns = [ ? ?path('abc/', views.hello),]

需要在根路由中配置當(dāng)前應(yīng)用的路由

修改 web/web/urls.py 文件,把創(chuàng)建的應(yīng)用中的路由 定義到 根路由中

from django.contrib import adminfrom django.urls import path,include?urlpatterns = [ ? ?path('admin/', admin.site.urls), ? ?path('',include('home.urls'))]

啟動(dòng)服務(wù),瀏覽器訪問測試

# 啟動(dòng)服務(wù)。web/manage.py 同級(jí)目錄中執(zhí)行python3 manage.py runserver

瀏覽器訪問會(huì)得下面的結(jié)果,就是報(bào) 404 錯(cuò)誤

問題是由于訪問的URL 路徑和項(xiàng)目中的url配置路徑不一致導(dǎo)致的

解決問題有兩個(gè)方案:

1.改變?yōu)g覽器的訪問路徑 訪問的URL。http://127.0.0.1:8000/abc/

2.改變應(yīng)用中的路由配置 由原來的 path('abc/', views.hello), 改為 path('', views.hello),

正常的訪問結(jié)果:

流程總結(jié):

瀏覽器訪問的流程1. 用戶在瀏覽器中輸入 請求的URL地址 http://127.0.0.1:8000/abc/2. 用戶的請求會(huì)經(jīng)過wsgi通用網(wǎng)關(guān)接口,走到項(xiàng)目的根路由中3. 項(xiàng)目中的 根路由 web/web/urls.py 文件 會(huì)解析用戶的請求地址 abc/4. 根路由解析后會(huì)交給 應(yīng)用中字路由進(jìn)行再次解析: web/home/urls.py 5. 應(yīng)用中的子路由 在根據(jù)請求的地址 找到對(duì)應(yīng)的視圖函數(shù)6. 視圖函數(shù) views.py里面的。hello函數(shù)會(huì)執(zhí)行7. hello函數(shù) 返回了一個(gè) 響應(yīng)內(nèi)容 給瀏覽器?代碼角度來解讀:1. views.py文件中的 hello視圖函數(shù) 定義了 響應(yīng)的內(nèi)容。hello world2. 應(yīng)用中的子路由決定如何解析或執(zhí)行 對(duì)應(yīng)的hello這個(gè)視圖函數(shù)3. 項(xiàng)目中的根路由負(fù)責(zé)接收用戶請求的url并找到對(duì)應(yīng)的 應(yīng)用去 執(zhí)行4. wsgi負(fù)責(zé)接收和響應(yīng)用戶的請求

三, 概念解析

路由,視圖,

路由:

  • 路由就是建立請求路徑和執(zhí)行對(duì)應(yīng)視圖函數(shù)的 映射關(guān)系。
  • 要先確定根路由,并依次匹配請求的規(guī)則
  • 如果匹配到就執(zhí)行對(duì)應(yīng)的視圖函數(shù)
  • 如果沒有匹配到或者出現(xiàn)其它問題,則會(huì)拋出對(duì)應(yīng)的錯(cuò)誤信息

視圖:

  • 視圖函數(shù)(或簡稱視圖)只是一個(gè)Python函數(shù),它接受Web請求并返回Web響應(yīng)。
  • 簡單理解就是專門接收用戶的請求,并執(zhí)行業(yè)務(wù)邏輯,之后給用戶響應(yīng)內(nèi)容。

四,如何使用模板文件返回 Hello World

  • 創(chuàng)建模版文件目錄在項(xiàng)目中創(chuàng)建 templates 文件夾存放模版文件 manage.py文件同名目錄中創(chuàng)建
  • 配置Django的模版引擎修改 web/web/settings.py文件的 模版引擎配置
    TEMPLATES = [
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR,'templates')],# 修改此處的路徑
    'APP_DIRS': True,
    'OPTIONS': {
    'context_processors': [
    'django.template.context_processors.debug',
    'django.template.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.contrib.messages.context_processors.messages',
    ],
    },
    },
    ]
  • 創(chuàng)建需要使用的模版文件 。html文件Web/templates/hello.htmlDocument

    Hello. World

  • 在視圖函數(shù)中調(diào)用模版文件即可
    from django.shortcuts import render
    from django.http import HttpResponse
    # Create your views here.
    ?
    # 定義 視圖函數(shù)。輸出hello world
    def hello(request):
    # 返回。響應(yīng)字符
    # return HttpResponse('Hello World!...')
    ?
    # 返回 模版文件
    return render(request,'hello.html')
  • 重新啟動(dòng)服務(wù),并用瀏覽器進(jìn)行訪問
  • ![](

    )

    五,框架的設(shè)計(jì)思想,設(shè)計(jì)模式

    MVC 設(shè)計(jì)模式。設(shè)計(jì)細(xì)想

    MVC是程序的架構(gòu)設(shè)計(jì),用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面

    MVC的核心思想:程序的解藕

    M ==> Model 模型 表示為 數(shù)據(jù)層 專門負(fù)責(zé)數(shù)據(jù)相關(guān)操作

    V ==> Views 視圖 表示為 視圖層 專門負(fù)責(zé)頁面的展示(模版)

    C ==> Controller 控制器 表示為 邏輯層 專門負(fù)責(zé)項(xiàng)目中的業(yè)務(wù)邏輯部分

    MVT

    M ==> Model ==> 模型 ==> 數(shù)據(jù)層

    V ==> Views ==> 視圖 ==> 邏輯層

    T ==>Template ==> 模版. ==> 視圖層

    總結(jié)

    以上是生活随笔為你收集整理的框架 路由地址_Django框架的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。