1.django簡介及安裝
- 2022 年 11 月 16 日
- 筆記
- python全棧開發-django學習
1.簡介
web應用程序的本質
-
-
處理本次請求,完成業務上的處理
-
什麼是web框架呢?
web框架用於搭建web應用程序,免去不同web應用相同代碼的重複
Django是通過python實現的web框架,是開源的,正式版本發佈於2008年,常見的web框架:django、flask、tornado
Django採用MVT的軟件設計模式,即模型(Model),視圖(View),和模板(Template)
1. M全拼為Model,負責和數據庫交互,進行數據處理。
2. V全拼為View,接收請求,進行業務處理,返回應答。
3. T全拼為Template,負責封裝構造要返回的html。
MVT的 工作流程
路由控制器將請求轉發給對應的視圖函數,完成業務邏輯,視圖函數將從model中獲取數據嵌套在template的模板文件中,渲染成html頁面,返回給客戶端
所以學習django的重點就是url+MVT
2.下載
本次總結使用的是Django3.2版本
在本地安裝
pip install django==3.2
pip源:
//pypi.douban.com/simple/ 豆瓣源
//pypi.tuna.tsinghua.edu.cn/simple 清華源
使用格式:
pip install django==3.2 -i //pypi.douban.com/simple/
查看django版本號
django-admin --version
3.虛擬環境
我們默認使用的都是系統解釋器,我們安裝的所有模塊都在系統下,這為我們以後遷移項目帶來很大的不便,我們在實際開發中更推薦的做法是為每一個項目創建一個虛擬環境,該環境包含項目所需要的所有模塊
- 我們常用的是virtualenv的方式來創建虛擬環境,首先需要安裝該模塊
pip install virtualenv
- 切換到需要創建虛擬環境的目錄
mkdir env cd env
- 創建虛擬環境
virtualenv test --python=python3
- 激活虛擬環境
source test/bin/activate
- 安裝python模塊
pip install django==3.2 ..
- 退出虛擬環境
deactive
4.項目創建
4.1 使用命令行創建項目
-
-
django-admin startproject mytest # 指定項目名稱 目錄結構: D:\project\mytest ├── manage.py [項目的管理工具] └── mytest ├── __init__.py ├── settings.py 【配置文件,只有一部分。程序啟動時,先讀取django內部配置,再讀settings.py】 ├── urls.py 【主路由,在裏面編寫 /xxx/xxx/xxx ---> index 】 ├── asgi.py 【異步】 └── wsgi.py 【同步,主】
- 創建子app
django-admin startapp app01 │─ manage.py # 終端腳本命令,提供了一系列用於生成文件或者目錄的命令,也叫腳手架 └─ mytest/ # 主應用開發目錄,保存了項目中的所有開發人員編寫的代碼, 目錄是生成項目時指定的 │- asgi.py # django3.0以後新增的,用於讓django運行在異步編程模式的一個web應用對象 │- settings.py # 默認開發配置文件 │- urls.py # 路由列表目錄,用於綁定視圖和url的映射關係 │- wsgi.py # wsgi就是項目運行在wsgi服務器時的入口文件 └- __init__.py └─ app01 # 子應用 │- models # 該應用的模型類模塊 │- views # 該應用的視圖模塊 │- tests # 該應用的單元測試模塊 │- apps # 該應用的一些配置,自動生成 │- admin.py # 該應用的後台管理系統配置
- 運行項目
python3 manage.py runserver 127.0.0.1:8090
- 訪問頁面
4.2 使用pycharm創建項目
- 創建項目
通過這種方式創建的django版本是最新的,不推薦 - 運行項目
- 訪問項目
4.3 使用pycharm創建帶有虛擬環境的項目
- 創建純凈的python項目
- 安裝django模塊
使用pycharm默認就會激活虛擬環境
pip install django==3.2
- 創建django項目
django-admin startproject pythonProject1 .
- 創建子應用
django-admin startapp app01
- 配置django
- 運行django
- 訪問Django
4.4 django的快速使用
在django中展示數據給用戶,需要3個步驟
-
在urls.py中射進url與視圖的映射關係
-
創建視圖函數
-
模板渲染
創建路由
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), ]
創建視圖函數
from django.shortcuts import render, HttpResponse from datetime import datetime # Create your views here. def index(request): now_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") return render(request, "index.html", {"now_time": now_time})
模板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>{{ now_time }}</p> </body> </html>
4.5 創建多項目app
如果在一個項目中有很多個子項目,我們通常會將多個子app規整在一個文件夾下,使得目錄更加簡潔
- 在項目中創建一個apps的文件夾
- 在apps文件夾中創建對應子項目名稱的文件件
- 創建子項目
- 修改每個子項目下的name
- 設置配置文件中項目的註冊
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'apps.app01.apps.App01Config', "apps.app02.apps.App02Config" ]