Featured image of post Django學習筆記

Django學習筆記

為了side Project被迫來學Django ^_^

參考網址

https://www.bilibili.com/video/BV1Sf4y1v77f?p=1

專案程式碼

https://github.com/Hoxton019030/Django_pratice

筆記

使用conda來安裝DJango

1
pip install django==2.0

輸入

1
django-admin

可以查看一些指令集

image-20231227025559760

  • startproject 啟動django項目
  • startapp 啟用django應用
  • check 教驗項目完整性
  • runserver 進入django環境 並且運行django項目
  • shell 進入django shell
  • test 跑單元測試
  • makemigrations 創建模型變更的遷移文件
  • migrate 執行上一個命令創建的遷移文件
  • dumpdata 把數據庫導出到文件
  • loaddate 把文件數據導入到數據庫

如何創建Django項目

1
django-admin startproject django_introduction

image-20231227030319425

認識Django項目結構

image-20231227030416404

  • manage.py 項目管理文件
  • settings.py 項目配置文件
  • urls.py django路由文件
  • wsgi.py 不知道是啥

此時可以在根目錄底下運行

1
python manage.py runserver

如果有看到這個畫面就代表成功了!

image-20231227030817146

Django應用 Vs Django項目

一個Django項目就是一個基於Django的web應用

一個Django應用就是一個可重用的Python軟體包

一個Django應用可以自己管理模型、視圖、模板、路由、靜態文件

一個Django項目可以包含一組配置和若干個Django應用

image-20231227031755748

如何創建Django應用

1
python manage.py startapp blog

就會在創建一個名為blog的應用

image-20231227032109787

image-20231227032121782

Django應用目錄介紹

  • view.py 視圖處理的地方
  • models.py 定義應用模型的地方
  • admin.py 定義Admin模塊管理對象的地方
  • apps.py 聲明應用的地方
  • test.py 編寫應用測試的地方
  • urls.py (要自行創建) 管理應用路由的地方

Django視圖

image-20231228030223880

1
2
3
4
5
6
7
8
9
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

# request要加
def hello_world(request):
    # 要把回傳的東西包裝成HttpResponse物件
    return HttpResponse("Hello world!")

Django 路由

Django目前對我們的實現的視圖一無所知,請求無法到達,所以需要配置路由,將視圖函數與URL進行綁定

路由配置有分成

  1. 應用層次的路由
  2. 項目層次的路由

首先配置應用層次的路由,首先新增urls.py的檔案

應用層次的路由配置

blog 中的urls.py這樣寫

1
2
3
4
5
6
7
8
from django.urls import path, include

import blog.views

urlpatterns=[
    # 如果路由含有hello_world,則轉發到blog.views.hello_world 記得不用帶()
    path("hello_world", blog.views.hello_world)
]

項目層次的路由

在項目的urls.py中,這樣寫

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""django_introduction URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/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,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/',include('blog.urls'))
    # 若url包含blog/,則轉發至blog資料夾底下的urls
]

image-20231228031206144

調整settings.py

最後去調整項目的settings.py,把blog的config添加到項目中

image-20231228031521629

啟動專案

輸入

1
python manage.py runserver

接著訪問

http://127.0.0.1:8000/blog/hello_world

就有hello world了!

hello-world-seytonic-gif

image-20231228032117075

Django路由圖

image-20231228032315240

Licensed under CC BY-NC-SA 4.0