參考網址
https://www.bilibili.com/video/BV1Sf4y1v77f?p=1
專案程式碼
https://github.com/Hoxton019030/Django_pratice
筆記
使用conda來安裝DJango
1
| pip install django==2.0
|
輸入
可以查看一些指令集
- startproject 啟動django項目
- startapp 啟用django應用
- check 教驗項目完整性
- runserver 進入django環境 並且運行django項目
- shell 進入django shell
- test 跑單元測試
- makemigrations 創建模型變更的遷移文件
- migrate 執行上一個命令創建的遷移文件
- dumpdata 把數據庫導出到文件
- loaddate 把文件數據導入到數據庫
如何創建Django項目
1
| django-admin startproject django_introduction
|
認識Django項目結構
- manage.py 項目管理文件
- settings.py 項目配置文件
- urls.py django路由文件
- wsgi.py 不知道是啥
此時可以在根目錄底下運行
1
| python manage.py runserver
|
如果有看到這個畫面就代表成功了!
Django應用 Vs Django項目
一個Django項目就是一個基於Django的web應用
一個Django應用就是一個可重用的Python軟體包
一個Django應用可以自己管理模型、視圖、模板、路由、靜態文件
一個Django項目可以包含一組配置和若干個Django應用
如何創建Django應用
1
| python manage.py startapp blog
|
就會在創建一個名為blog的應用
Django應用目錄介紹
- view.py 視圖處理的地方
- models.py 定義應用模型的地方
- admin.py 定義Admin模塊管理對象的地方
- apps.py 聲明應用的地方
- test.py 編寫應用測試的地方
- urls.py (要自行創建) 管理應用路由的地方
Django視圖
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進行綁定
路由配置有分成
- 應用層次的路由
- 項目層次的路由
首先配置應用層次的路由,首先新增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
]
|
調整settings.py
最後去調整項目的settings.py,把blog的config添加到項目中
啟動專案
輸入
1
| python manage.py runserver
|
接著訪問
http://127.0.0.1:8000/blog/hello_world
就有hello world了!
Django路由圖