框架 路由地址_Django框架的使用
Django框架的使用
一,創(chuàng)建基本項目
創(chuàng)建項目
# web是項目名稱或者稱為項目目錄django-admin startproject web?# 會在執(zhí)行命令的當前目錄中 創(chuàng)建 web項目目錄web├── manage.py ? ? # 項目管理文件 ? 單入口文件└── web ? ? ? ? ? # 和項目同名的目錄/ 存放于項目相關(guān)的配置文件 等 ? ├── __init__.py ?# 包初始化文件 ? ├── settings.py ?# 項目的配置文件 ? ├── urls.py ? ? ?# 項目的根路由文件 ? └── wsgi.py ? ? ?# 通用網(wǎng)關(guān)接口服務(wù)文件/后期上線部署到專業(yè)的HTTP服務(wù)器時需要用到啟動服務(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/
成功后會在瀏覽器中看到默認頁面
二,創(chuàng)建應(yīng)用
執(zhí)行命令創(chuàng)建自定義應(yīng)用
# 在 manage.py 同級目錄下 執(zhí)行 以下命令 創(chuàng)建應(yīng)用python3 manage.py startapp home??# 應(yīng)用創(chuàng)建成功后,會在mamage.py 的同級目錄中創(chuàng)建一個 應(yīng)用文件夾web/├── db.sqlite3 ? ? ?# Django框架默認使用數(shù)據(jù)庫文件├── home ? ? ? ? ? ?# 創(chuàng)建的自定義應(yīng)用│?? ├── __init__.py│?? ├── admin.py ? ?# django框架自帶后臺模塊配置文件│?? ├── apps.py│?? ├── migrations│?? │?? └── __init__.py│?? ├── models.py ? # 模型文件│?? ├── tests.py ? ?# 測試文件│?? └── views.py ? ?# 視圖函數(shù)文件├── manage.py ? ? # 項目管理文件 所以的項目指令都需要manage.py └── web ? ? ? ? ? # 和項目同名的目錄/ 存放于項目相關(guān)的配置文件 等 ? ├── __init__.py ?# 包初始化文件 ? ├── settings.py ?# 項目的配置文件 ? ├── urls.py ? ? ?# 項目的根路由文件 ? └── wsgi.py ? ? ?# 通用網(wǎng)關(guān)接口服務(wù)文件/后期上線部署到專業(yè)的HTTP服務(wù)器時需要用到?定義視圖函數(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),]需要在根路由中配置當前應(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'))]啟動服務(wù),瀏覽器訪問測試
# 啟動服務(wù)。web/manage.py 同級目錄中執(zhí)行python3 manage.py runserver瀏覽器訪問會得下面的結(jié)果,就是報 404 錯誤
問題是由于訪問的URL 路徑和項目中的url配置路徑不一致導致的
解決問題有兩個方案:
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. 用戶的請求會經(jīng)過wsgi通用網(wǎng)關(guān)接口,走到項目的根路由中3. 項目中的 根路由 web/web/urls.py 文件 會解析用戶的請求地址 abc/4. 根路由解析后會交給 應(yīng)用中字路由進行再次解析: web/home/urls.py 5. 應(yīng)用中的子路由 在根據(jù)請求的地址 找到對應(yīng)的視圖函數(shù)6. 視圖函數(shù) views.py里面的。hello函數(shù)會執(zhí)行7. hello函數(shù) 返回了一個 響應(yīng)內(nèi)容 給瀏覽器?代碼角度來解讀:1. views.py文件中的 hello視圖函數(shù) 定義了 響應(yīng)的內(nèi)容。hello world2. 應(yīng)用中的子路由決定如何解析或執(zhí)行 對應(yīng)的hello這個視圖函數(shù)3. 項目中的根路由負責接收用戶請求的url并找到對應(yīng)的 應(yīng)用去 執(zhí)行4. wsgi負責接收和響應(yīng)用戶的請求三, 概念解析
路由,視圖,
路由:
- 路由就是建立請求路徑和執(zhí)行對應(yīng)視圖函數(shù)的 映射關(guān)系。
- 要先確定根路由,并依次匹配請求的規(guī)則
- 如果匹配到就執(zhí)行對應(yīng)的視圖函數(shù)
- 如果沒有匹配到或者出現(xiàn)其它問題,則會拋出對應(yīng)的錯誤信息
視圖:
- 視圖函數(shù)(或簡稱視圖)只是一個Python函數(shù),它接受Web請求并返回Web響應(yīng)。
- 簡單理解就是專門接收用戶的請求,并執(zhí)行業(yè)務(wù)邏輯,之后給用戶響應(yīng)內(nèi)容。
四,如何使用模板文件返回 Hello World
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',
],
},
},
]
Hello. World
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')

五,框架的設(shè)計思想,設(shè)計模式
MVC 設(shè)計模式。設(shè)計細想
MVC是程序的架構(gòu)設(shè)計,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面
MVC的核心思想:程序的解藕
M ==> Model 模型 表示為 數(shù)據(jù)層 專門負責數(shù)據(jù)相關(guān)操作
V ==> Views 視圖 表示為 視圖層 專門負責頁面的展示(模版)
C ==> Controller 控制器 表示為 邏輯層 專門負責項目中的業(yè)務(wù)邏輯部分
MVT
M ==> Model ==> 模型 ==> 數(shù)據(jù)層
V ==> Views ==> 視圖 ==> 邏輯層
T ==>Template ==> 模版. ==> 視圖層
總結(jié)
以上是生活随笔為你收集整理的框架 路由地址_Django框架的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑被阻止是怎么回事 电脑被阻止该怎么解
- 下一篇: 教师提升微能力_分层分类培训,助力学校教